Fibnacci数列递归实现

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并调试,但是无法查看递归的堆栈情况,这是什么问题?

posted on 2022-10-06 20:50  20221305赵月溪  阅读(26)  评论(0编辑  收藏  举报

导航