Fibonacci數列一定會從F[0]、F[1]開始循環,這是JJ哥告訴我的……
于是,此題就很顯然啦。
@import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
以下是我的代碼:
#include <vector>
#include <cstdio>
using namespace std;
int n, m;
vector<int> r[27];
void Init () {
for ( m = 1; m < 20; m++ ) {
int mod = ( 1 << m );
int a = 0, b = 1, c = 1 % mod;
r[m].push_back ( a );
r[m].push_back ( b );
r[m].push_back ( c );
while ( b != 0 || c != 1 ) {
a = b; b = c; c = ( a + b ) % mod;
r[m].push_back ( c );
}
r[m].pop_back(); r[m].pop_back();
}
}
int main () {
#ifndef ONLINE_JUDGE
freopen ( "data.in", "r", stdin );
#endif
Init ();
while ( scanf ( "%d%d", &n, &m ) == 2 )
if ( m ) printf ( "%d\n", r[m][n%r[m].size()] );
else printf ( "%d\n", 0 );
return 0;
}
posted on 2011-11-22 22:57
lee1r 閱讀(1020)
評論(0) 編輯 收藏 引用 所屬分類:
題目分類:數學/數論