普通的递归算法(自己写的)
#include <iostream>
using namespace std;
int fibo(int n){
if(n == 1 || n == 2) return 1;
else return (fibo(n-1)+fibo(n-2));
}
int main(){
int n; cin>>n;
cout << fibo(n) << endl;
return 0;
}
动态规划算法
/*
作者:evrmji
题目:p1978 Fibonacci数列 3
*/
#include <iostream>
using namespace std;
int main(){
int m;
cin >> m;
int a[m+1];//这里用到了新特性,如果不用可以用动态分配空间
a[1]=1;
a[2]=1;
for(int i=3;i<=m;i++)
a[i] = a[i-1] + a[i-2];
cout << a[m] << endl; //输出到标准输出流中
}
这方法应该怎么称呼,大神求解
#include<iostream>
using namespace std;
int main()
{
unsigned n,a=1,b=1,c,e;
cin>>n;
for(;n>=3;n=n-3)
{
c=a+b;
a=b+c;
b=c+a;
}
if(n%3==0)e=c;
else if(n%3==1)e=a;
else if(n%3==2)e=b;
cout<<e<<endl;
return 0;
}