step1:明确我的函数想做什么:对于递归而言,最重要的莫过于搞清楚“这个函数的功能是什么”。它想要什么结果,完全是由我来定义。比如
//计算n的阶乘 int f(int n){ return 0; }
一个目的性的函数有了,接下来看第二要素
step2:学找递归结束的条件:在定义的函数代码中,调用自己本身,就是递归。因此,我们必须明确递归的结束条件,否则就会陷入“黑洞”中难以自拔。换句话说,也就是当参数满足什么条件时,递归结束,并把结果返回。此时,我们把要素2掺杂进我们刚刚定义好的函数内:
//计算n的阶乘 int f(int n){ if (n==1){ return 1; } return 0; }
step3:找出函数的等价关系式:精确缩小函数范围,从而的到准确结果。假如我们的等价关系式为f(n) =n*f(n-1):
//计算n的阶乘 int f(int n){ if (n<=2){ return n; } return n*f(n-1); }
来源:https://www.cnblogs.com/starboy13/p/12598381.html