题目
1 1 2 3 5 8 13 21 34 55
第n项等于(n-1)+(n-2)。
代码
#include<bits/stdc++.h>
using namespace std;
int fib[1000005];
int dfs(int n){
if(fib[n])
return fib[n];
if(n==1||n==2)
fib[n]=1;
else
fib[n]=(dfs(n-1)+dfs(n-2));
return fib[n];
}
int main(){
int n;
while(cin>>n){
dfs(n);
cout<<fib[n]<<endl;
}
return 0;
}
思路
利用fib数组保存已经计算过的数据,在需要的时候直接取出,不需要再重复浪费时间再次计算。