Hellow,我是jack,今天给大家分享的是C语言实现函数的递归调用。
在使用递归调用时,我们应明白以下几点:
1.存在限制条件 限制条件不存在时,不在递归
2.递归越来越接近结尾
3.递归层次不能太深
注意这几点就是让我们在程序上得以实现并且在存储以及运行上可以更优。
只是将知识是不行的,接下来让我们通过一个例子去了解递归
eg:打印第n个斐波那契数:
首先让我们先了解下什么是斐波那契数
斐波那契数列(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 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
就相当于除了第一个和第二个数以外其他的数都是前一个数和前俩个数的和。
so,我们就能想到一个函数来实现它这个递归过程。
int ter(int a)
{int i = 1;int count = 0;if (a <= 2) { return 1; }elsecount++;return ter(a - 1) + ter(a - 2);}
接着让我们将代码补充完整。
int ter(int a)
{int i = 1;int count = 0;if (a <= 2) { return 1; }elsecount++;return ter(a - 1) + ter(a - 2);}
int main()
{int n=0;scanf_s("%d", &n);int ret = ter(n);printf("第%d个斐波那契数为%d\n",n, ret);return 0;
}
实现的结果为:
大家是否明白了?赶快动手试试吧。
本章就和大家分享到这里,谢谢。