第三要素:找出函数的等价关系式
第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
例如,f(n) 这个范围比较大,我们可以让 f(n) = n * f(n-1)。这样,范围就由 n 变成了 n-1 了,范围变小了,并且为了原函数f(n) 不变,我们需要让 f(n-1) 乘以 n。
说白了,就是要找到原函数的一个等价关系式,f(n) 的等价关系式为 n * f(n-1),即
f(n) = n * f(n-1)。
找出了这个等价,继续完善我们的代码,我们把这个等价式写进函数里。如下:
// 算 n 的阶乘(假设n不为0) int f(int n){ if(n <= 2){ return n; } // 把 f(n) 的等价操作写进去 return f(n-1) * n; }
至此,递归三要素已经都写进代码里了,所以这个 f(n) 功能的内部代码我们已经写好了。
这就是递归最重要的三要素,每次做递归的时候,你就强迫自己试着去寻找这三个要素。
原文链接: https://blog.csdn.net/m0_37907797/article/details/102767860
最后的最后!!!
今天的内容就完成了哈!接下来就准备给大伙去写讲解那两个游戏哈!!!
感谢大家的观看!!!!
如果觉得文章对你有一点用的话,就请来一个点赞关注订阅一条龙哈!!!
谢谢大家!!!最后祝愿我们一起变好!!!加油!!!!