Fibonacci數列求餘 C語言

2021-10-02 12:23:53 字數 938 閱讀 6195

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。輸出格式 輸出一行,...