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;
}



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务