首页 > 其他分享 >Fibnacci数列递归实现

Fibnacci数列递归实现

时间:2022-10-06 21:00:58浏览次数:52  
标签:斐波 数列 递归 Fibnacci Fib 那契

1.什么是Fibnacci数列?

  • 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

  • 概述图

2.给出Fibnacci数列的递归表达式。

F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

用C语言递归实现Fib(n),并进行测试。

代码

    #include <stdio.h>
    int main()
    {
             int i, n, t1 = 1, t2 = 1, nextTerm;
             printf("输出n个斐波那契数列: ");
             scanf("%d", &n);
             for (i = 1; i <= n; ++i)
    {
             printf("%d, ", t1);
             nextTerm = t1 + t2;
             t1 = t2;
             t2 = nextTerm;
    }
         printf("\n");
             return 0;
    }

Fib(10)可以实现,但是Fib(100),Fib(1000),Fib(10000)会溢出。

用gdb查看递归的堆栈情况

尝试使用gdb并调试,但是无法查看递归的堆栈情况,这是什么问题?

标签:斐波,数列,递归,Fibnacci,Fib,那契
From: https://www.cnblogs.com/zhao-yuexi/p/16754366.html

相关文章

  • 【算法-简单01】合并2个有序数列
    合并2个有序数列结果:时间复杂度:O(N)空间复杂度:O(N)比较抽象的点结论:Node对象有3个属性:Node本身、val,以及Node.nextNode本身判空,结合while来进行遍历查询val......
  • 对于函数递归的理解
    递归的代码操作就是在自己未完成的函数之中调用自己这样看起来是并不合理的,因为在一个为完成的东西之中使用他自己,是不太现实的但是如果从代码执行的逻辑来进行理解的话,......
  • 算法竞赛备赛之浅谈递归
    递归递归需要有基例、递归前进段和递归返回段(return语句),是一种程序设计技巧,可以使程序编写简单,但实际上要付出低效率的代价计算时间复杂度常用数据的记忆(程序设计基本功,......
  • 程序员必备的基本算法:递归详解
    前言递归是一种非常重要的算法思想,无论你是前端开发,还是后端开发,都需要掌握它。在日常工作中,统计文件夹大小,解析xml文件等等,都需要用到递归算法。它太基础太重要了,这也是为......
  • 斐波那契数列
    什么是斐波那契数列斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2......
  • Java方法(递归)
    递归就是A方法调用A方法,就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求......
  • Fibnacci数列递归实现
    什么Fibnacci数列通过查阅斐波那契数列,其中,它是这么说的:斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例......
  • 【Vue3.x】全局组件、局部组件和递归组件
    全局组件没啥讲的,和vue2一样,常规是src下components文件夹下新建全局组件,然后去入口文件main.ts里注册全局组件。然后就能在全局使用了import{createApp}from'vue'i......
  • (函数)用递归实现求阶乘函数fact(n)的功能,即求1*2*……*n,运行后输出结果如下
    样例输入5 样例输出12 样例输入6 样例输出720 参考答案deffact(n):result=1foriinrange(1,n+1):result*=ireturnresultn=i......
  • 原始递归函数及模拟运行的优化
    看到网上一个题目,证明x开y次方是原始递归函数(primitiverecursivefunction)。这个问题并不难,只要把x开y次方实现出来即可。于是,正好把《递归论》相关内容补一补。【......