斐波那契数列
已知斐波那契数列 Fn=Fn−1+Fn−2(n>=3),F1=1,F2=1 求解该数列的第n项。
输入格式:
输入一个正整数n (1<=n<=40)。
输出格式:
输出一个数,数列的第n项
输入样例1:
1
输出样例1:
1
方式一:递归法求斐波那契
int fn(int n){
if(n<1)
return -1;
if(n==1||n==2)
return 1;
return fn(n-1)+fn(n-2);
}
用递归法求斐波那契数列的第n项的时间复杂度为o(2^n)
方式二:用循环求斐波那契
int fn(int n){
static int a=1,b=1,c;
if(n<0)
return -1;
if(n==1||n==2)
return 1;
for(int i=0;i<n-2;i++)//前两项已经初始化过了,从第三项开始循环