递归最通俗的理解方法 利用递归算阶乘
发布时间:2022-11-26 14:03:24 346
相关标签: # java# java
递归最好最全的理解方法
首先要划分好递归的三大要素,只要是递归,都要从三大要素入手
第一要素:首先你要明确这个函数想要干什么
对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么样的一件事,而这个是完全由你个人来定义的。也就是说我们先不管函数里面的代码是什么,而是要先明白,你这个函数是要干什么。
例如
这个函数的功能是算阶乘。那么,我们定义了一个函数,并且定义了它的功能是什么。接下来我们来看第二要素
第二要素:寻找递归的结束条件
所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须找出递归的结束条件,不然的话会一直调用自己,进入死循环。也就是说我们需要找出当参数为啥时,递归结束,之后直接把结果返回,请注意,这个时候我们必须能根据这个参数的值,能够直接知道函数的结果是什么。
例如,上面那个例子,当n = 1时,f(1)=1。再把第二要素加入代码中
第三要素:找出函数的等价关系式
我们要不断的缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
例如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)。 第三要素是三要素中最难的一步,只要找到关系式离成功就不远了
那么将这个等价式写入函数里
到此为止 递归的阶乘已经结束 可以在main方法中调用f方法来输出你想要的数
文章来源: https://blog.51cto.com/u_15763851/5708316
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报