入門訓練 Fibonacci數列


問題描述:

Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。

當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的余數是多少。

輸入格式:
輸入包含一個整數n。
 
輸出格式:
輸出一行,包含一個整數,表示Fn除以10007的余數。
 
代碼:
 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 int n;
 7 int f[1000005];
 8 
 9 int fib(int i){
10     if(i==1||i==2){
11         return 1;
12     }else{
13         if(f[i]) return f[i];
14         else return f[i]=(fib(i-2)+fib(i-1))%10007;
15         //保存余數
16     }
17 }
18 
19 void solve(){
20     printf("%d",fib(n));
21 }
22 
23 int main()
24 {
25     scanf("%d",&n);
26     solve();
27     return 0;
28 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM