首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言】斐波那契数列细讲

【C语言】斐波那契数列细讲

作者头像
可惜已不在
发布2024-10-17 15:48:29
发布2024-10-17 15:48:29
3320
举报
文章被收录于专栏:网络网络

什么是斐波那契数列? 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契斐波那契斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上


一.细讲数列:

画的不好,大家凑合着看.大致的意思就是:前两位的和等于第3位


二.细讲运算方法:

递归计算:
代码语言:javascript
复制
int fbnq(int n)
{
 if (n <= 2)         
        return 1;
    else
        return fbnq(n - 1) + fbnq(n - 2);
}
int main()
{
    int n=0;
    int c=0;
    printf("输入数");
    scanf("%d",&n);
    c=fbnq(n);
    printf("%d",c);
    return 0;
}
但是递归在计算时,有一个致命的缺陷就是,数字大的时候需要非常大的工作量,会导致计算时间非常 的长,且都是重复的步骤。

迭代计算:

这个时候我们想到递归和迭代的区别,我在递归和迭代详解中详细的讲述了两者区别,当一个问题相当复杂,难以用递归实现时,此时迭代实现的简洁性便可以补偿它所带来的运行时开销
代码语言:javascript
复制
int fbnq(int n)
{
    int a, b, c;
    a = 1;
    b = 1;
    c = 0;
    if (n <= 2)
    {
        return 1;
    }
    while (n > 2)
    {
        n--;
        c = a + b;
        a = b;
        b = c;
    }
    return c;
}
int main()
{
    int n = 0;
    int c = 0;
    printf(":");
    scanf("%d", &n);
    c = fbnq(n);
    printf("%d", c);
    return 0;
}

三.分析:

两者的区别:
1.选择算法的时候想要代码简洁可以考虑递归,但是也要考虑到此算法的弊端。
2.迭代虽然代码多,但是其算法较快比较适合算一下高计算量的题目。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.细讲数列:
    • 画的不好,大家凑合着看.大致的意思就是:前两位的和等于第3位
  • 二.细讲运算方法:
    • 递归计算:
    • 但是递归在计算时,有一个致命的缺陷就是,数字大的时候需要非常大的工作量,会导致计算时间非常 的长,且都是重复的步骤。
    • 这个时候我们想到递归和迭代的区别,我在递归和迭代详解中详细的讲述了两者区别,当一个问题相当复杂,难以用递归实现时,此时迭代实现的简洁性便可以补偿它所带来的运行时开销
  • 三.分析:
    • 两者的区别:
    • 1.选择算法的时候想要代码简洁可以考虑递归,但是也要考虑到此算法的弊端。
    • 2.迭代虽然代码多,但是其算法较快比较适合算一下高计算量的题目。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档