递归
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
当函数一直在递推,当遇到一个阈值时,开始逐层回归。
例题
计算函数的阶乘
#include <stdio.h>
int factorial(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*factorial(n-1);
}
}
int main()
{
int n,sum;
scanf("%d",&n);
sum=factorial(n);
printf("n的阶乘是:%d",sum);
return 0;
当n=10的时候,函数先开始递推,知道最后n=1的时候开始进行回归,之后再返回一个值。
递归函数有4大特点:
1. 每一级函数调用时都有自己的变量,但是函数代码并不会得到复制。
2. 每次调用都会有一次返回。
3. 递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
4. 递归函数中必须有终止语句。
递归的优点是:代码由一整块算法分割成多块算法,使运算更加简洁。