什么是递归
简单的说,就是在函数中调用函数本身,这种现象就叫递归。
以阶乘函数举例
\\求阶乘函数
int x(int n)
{
if(n<=1) / / 这里判断输入的值为1或小于1的时候输出为1
{
return 1;
}
return n * x(n - 1); // 这里就是调用函数本身
}
递归由字面意思可以理解为 先 “递” 再 “归” ,递:把问题拆解成子问题,通过不断的拆解等到被拆解的子问题被解决,就 “归”:也就是从子问题从下到上逐一解决,直到解决最终的问题。
看一个例子,并了解解题思路:
输入一个正整数,输出n!的值,即求阶乘
求n的阶乘就是由n*(n-1)直到n为1,所以可以定义一个函数,当我们输入一个整数n时,可以计算出由n到1的阶乘
每一个递归函数都应该进行有限次的递归调用,否则就会进入死循环无法退出,那么递归也就没有意义。