C++中怎样理解递归函数

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:28:44

递归函数就是在函数的内部调用它自身。例如求1-100的和
int fun(int n)
{
if(n=1)
return 1;
else
return n+fun(n-1);
}

就是说前n项和可以分解为,n加上前n-1项和,而前n-1项和可以分解为n-1加上前n-2项和。如此循环。

即:sum = fun(100)=n+fun(100-1)=n+(n-1)+fun(n-2)
=n+(n-1)+(n-2)+fun(n-3)............
=n+(n-1)+(n-2)+(n-3)+......+3+2+1;
类似这种可以这样分解的问题都可以用递归函数来实现。
比如:阶乘,等

其实就是一种减小问题规模的方法,分治法。
在过程上就是调用自己,用在问题和n有关的问题上

就好比领导叫手下干活,活太大了,比如搬书。
要搬64本书,领导可以叫别人搬63本,然后自己再搬一本,如果只有一本,领导自己搬就行了