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