fibonacci數列求餘 c語言
問題描述
fibonacci數列的遞推公式為:fn=fn-1+fn-2,其中f1=f2=1。
當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。
輸入格式
輸入包含乙個整數n。
輸出格式
輸出一行,包含乙個整數,表示fn除以10007的餘數。
說明: 在本題中,答案是要求fn除以10007的餘數,因此我們只要能算出這個餘數即可,而不需要先計算出fn的準確值,再將計算的結果除以10007取餘數,直接計算餘數往往比先算出原數再取餘簡單。
樣例輸入
10樣例輸出
55樣例輸入
22樣例輸出
7704
資料規模與約定
1 <= n <= 1,000,000
看完題,如果你想到了遞迴,恭喜你已經入坑!!!!
看似完美但就是wa的**:
#include
#include
int sum(int a)
if(a=1||a==2)
return (sum(a-1)+sum(a-2))%10007;
}int main()
超時啊!!!每一次都需要重新做一次運算,所以可以用陣列將已經算出來的數存起來。
#include
#define max 1000020 //注意陣列大小
int main()
printf("%d\n",fib[n]);
return 0;
}但遞迴其實和陣列一樣,確實占用了不少記憶體空間,而且也加大了計算量。如下**通俗易懂記憶體使用低
#include
int main()
printf("%d",f3);
return 0;
C語言求Fibonacci數列
方法一 普通法 include include unsigned long fibonacci unsigned n 列印fibonacci intmain void printf athank you for you using.return exit success unsigned long ...
Fibonacci數列取餘10007
時間限制 1.0s 記憶體限制 256.0mb fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入包含乙個整數n。輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案...
入門訓練 Fibonacci數列 同餘定理
入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...