Fibonacci(菲波那切)数列
牛牛学数列7
https://ac.nowcoder.com/acm/problem/22211
1、可以用递归实现,但是当n较大时,运行速度过慢。
#include<stdio.h>
int fibonacci(int n){
if(n==1)
return 0;
if(n==2)
return 1;
else
return fibonacci(n-1)+fibonacci(n-2);
}
int main(){
int n;
scanf("%d",&n);
printf("%d",fibonacci(n));
return 0;
}
2、用数组来实现
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
long long int a[50];//数值过大用long long防止溢出
a[0]=0,a[1]=1;
for(int i=2;i<=n;i++){
a[i]=a[i-1]+a[i-2];
// printf("%d\n",a[i]);
}
printf("%lld",a[n-1]);
return 0;
}

