求Fibonacci数列的第n项(注意,是当n很小时)
Fibonacci数列:
F(n)=F(n-1)+F(n-2)
1 1 2 3 5 8 13 21 ……
递归解法:
#include<stdio.h>
int Fibonacci(int a){
if(a==1||a==2)return 1;
else return Fibonacci(a-1)+Fibonacci(a-2);
}
int main()
{
int n;
scanf("%d",&n);
int m=Fibonacci(n);
printf("%d",m);
return 0;
}
非递归解法:
#include<stdio.h>
int main()
{
int n,f=0,t1=0,t2=1;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
f=t1+t2;
t2=t1;
t1=f;
}
printf("%d",f);
return 0;
}