fibnacci数列递归实现
fibnacci数列递归实现
1.什么是fibnacci数列
斐波那契数列指的是一个数列从第三项开始每一项都等于前两项之和。如1,1,2,3,5,8,13,21,34,.......
下图为一个几何理解图
2.fibnacci数列的递归表达式
F (n) = F (n - 1) + F (n - 2)
就是中学所学递推公式
3.用C语言递归实现Fib(n)
C语言代码:
运行fib(10),fib(100),fib(1000),fib(10000)的结果:
4.用GDB查看递归的堆栈情况
递归的堆栈情况是指在递归函数中,每次函数调用都会创建一个新的堆栈帧,其中包含函数的参数、局部变量和执行位置等信息。这些堆栈帧按照函数调用的顺序依次堆叠在一起,形成了一个称为调用堆栈的数据结构。当递归函数递归调用自身时,每个新的函数调用都会在堆栈上添加一个新的堆栈帧,这些堆栈帧会随着递归的深度不断增加。当递归结束或达到终止条件时,这些堆栈帧会被依次弹出,释放内存。
简而言之,递归的堆栈情况描述了递归函数的多次嵌套调用在计算机内部如何被存储和管理,以便在递归结束时能够回溯到之前的函数调用状态。这对于理解递归的工作原理和调试递归函数非常重要。