C语言求斐波那契数列

斐波那契数列是什么?斐波那契数列第一和第二两项都是1,第三项以及后面的第n项(n>=3)为前两项之和,第三项为2,第四项为3,以此类推。

怎么求斐波那契数列的第n项,我们主要有三种办法,第一:用两个数不停相加更新;第二:使用数组;第三:使用递归;(代码在最后)

第一种:

这种求第n项比较麻烦,一般写来求前几项。

第二种:

利用数组,第n项(n>=3)为前两项之和,数组可以存入斐波那契数列的各项的值,我们要想知道第几项,知道下标就行(这里仅仅在前10项里面,由于斐波那契数列增长很大,注意范围)

第三种:递归

斐波那契数列数列开始第一项和第二项的值是1,我们可以把这个当作递归的终止条件,即if(n<=2) return 1;此时就不再递归,当n>=3时,就再次使用函数,因为是前两项之和,就使用两次,直到n减为1或2。

代码仅供参考:

1

#include <stdio.h>
int main() {
    int f1 = 1, f2 = 1;
    for(int i=0;i<20;i++)
    {
        printf("%d %d ",f1,f2);
        f1 = f1 + f2;
        f2 = f2 + f1;
    }
    return 0;
}

2

#include <stdio.h>
int main() {
    int n;
    scanf("%d",&n);
    int a[10];
    a[0]=a[1]=1;
    for(int i=2;i<10;i++)
    {
        a[i]=a[i-1]+a[i-2];
    }
    printf("%d\n",a[n]);
    return 0;
}

3

#include <stdio.h>
int Fibonacci(int n){
    if(n<=2) return 1;
    else return (Fibonacci(n-1)+Fibonacci(n-2));
}
int main() {
    int n;
    scanf("%d",&n);
    int F=Fibonacci(n);
    printf("%d\n",F);
    return 0;
}

相关推荐

  1. C语言数列中的合数

    2024-01-07 16:26:01       32 阅读
  2. c++】数列

    2024-01-07 16:26:01       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 16:26:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 16:26:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 16:26:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 16:26:01       18 阅读

热门阅读

  1. Qt实现FTP文件传输协议

    2024-01-07 16:26:01       43 阅读
  2. ISO 26262:引领汽车安全的新标准

    2024-01-07 16:26:01       36 阅读
  3. 【comp221】Flask Python Web

    2024-01-07 16:26:01       35 阅读
  4. C++实现分水岭算法(Watershed Algorithm)

    2024-01-07 16:26:01       30 阅读
  5. Ribbon相关问题及答案(2024)

    2024-01-07 16:26:01       31 阅读
  6. c++关联容器详细介绍

    2024-01-07 16:26:01       31 阅读
  7. 【IC前端虚拟项目】MVU FS文档编写与注意事项

    2024-01-07 16:26:01       39 阅读
  8. DSSW:MAX

    2024-01-07 16:26:01       39 阅读