众所周知,递归思想在许多算法里尤为重要,尤其是遍历和搜索里,所以总结下:
递归算法的实质是:
把求解问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或子过程)来表示问题的解,通过多次递归调用,最终可求出最小问题的解,然后通过这个最小问题的解返回上层调用,再求出次小问题的解,再返回上层调用,不断重复,最终得到整个问题的解,完成递归操作。
注意点:
1、使用递归时,必须有一个明确的递归结束条件,称为递归出口
2、递归效率较低,容易堆栈溢出我们通过几个例题来详细了解下递归的思想。
在此列出一例题
求阶乘(子函数递归)
#include
int print(int x)
{
if(x<=1)
return 1;
else
return x*print(x-1);
}
int main()
{
int i,n;
printf(“请输入要求阶乘的一个整除:”);
scanf("%d",&n);
printf(“结果为:%d\n”,print(n));
return 0;
}
递归学习小结
最新推荐文章于 2022-11-05 15:35:27 发布