写递归你需要先找到递归的递归条件和终结条件。
递归的基本规则可以解释为:
如果条件为继续递归 为条件做一定变换后调用自身
否则 返回基本值
当然,可能会出现更复杂的,但一般都是这样。所以需要找到三个地方:
第一、就是在什么条件下要继续递归,在什么条件下结束递归。
第二、递归时需要做什么变换才能让递归函数最终走到终结条件。
第三、基本值是什么。
比如递归计算N!。我们知道函数基本写作
int func(int n)
{
f(n > 1)
return n * func(n - 1);
else
return 1;
}
针对这个函数,三点就是:
第一、递归条件就是只要n不等于1,则递归继续,否则递归终结。
第二、递归变换就是n-1。
第三、终结时,基本值是1。
更复杂的递归也是符合这些条件的,只不过可能不止一种变换或不止一种终结条件等等。