目录
1.递归的概念
递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢? 递归其实是⼀种解决问题的⽅法,在C语⾔中,简而言之,递归就是函数⾃⼰调⽤⾃⼰。
2.使用递归的满足条件
递归存在限制条件,当满⾜这个限制条件的时候,递归便不再继续,如果代码出现死递归,有可能会出现栈溢出(Stack overflow)进而导致代码无法运行。并且每次递归调⽤之后越来越接近这个限制条件。
3.俩个递归例题
1.实现数乘
废话不多说说先上代码
#include <stdio.h>
int Fact(int n)
{
if(n==0)
return 1;
else
return n*Fact(n-1);
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = Fact(n);
printf("%d\n", ret);
return 0;
}
上面代码是通过递归来实现数乘,其实也可也通过迭代,也就是基本的循环结构来实现,具体情况可以看迭代和递归哪一个代码效率更高。
2.逐个打印每一位数字
同样先给诸位奉上代码
void Print(int n)
{
if(n>9)
{
Print(n/10);
}
printf("%d ", n%10);
}
int main()
{
int m = 0;
scanf("%d", &m);
Print(m);
return 0;
}
这段代码假如我输入数字1234,便会打印出来1 2 3 4,解题思路相当于如下(伪代码)
Print(1234)
==>Print(123) + printf(4)
==>Print(12) + printf(3)
==>Print(1) + printf(2)
==>printf(1)
以上就是简单递归的应用了,希望对大伙有帮助。