斐波纳切数列
# include <stdio.h>
/**
递归函数必须传参数
n:输入的参数
*/
int fib1(int n)
{
if(n==1||n==2){
return 1;
}
return fib1(n-1)+fib1(n-2);
}
/**
非递归求法
n:输入的参数
*/
int fib2(int n){
int i,one=1,two=1,cur;
if(n<3){
return 1;
}
for(i=2;i<n;i++){
cur=one+two;
one=two;
two=cur;
}
return cur;
}
/**
date=20180302
auther=xiaohuyaxixixi
purpose:斐波纳切数列
*/
int main(){
/**int n,len=0,i;
int a[100];
scanf("%d",&n);
while(n!=0){
a[len]=fib1(n);
len++;
scanf("%d",&n);
}
for(i=0;i<len;i++){
printf("\n%d\n",a[i]);
}*/
int n;
scanf("%d",&n);
printf("%d\n",fib2(n));
return 0;
}