递归浅析
发布日期:2021-11-21 04:40:51
浏览次数:16
分类:技术文章
本文共 908 字,大约阅读时间需要 3 分钟。
本人新手,今天在学习递归的时候,到网上查阅学习资料的时候,蛮多人讲的都是自身条用自身,但是对初学者其实是麻烦的理解
特别是对数学不好的娃子,理解起来更有困难,好吧,我讲下我理解的递归的东西,新手一枚,写的不好大家也不要喷哈!
我们来计算1+2+3+4+5+...+10,我们知道最终的结果是:55
我们可以通过上面的 1+ 2 + 3+ ...+10很容易知道 1+2+3+...+10 + 11 = 55+11 = 66,对吧,我们假设1+2+3 +...+ 10 = sum(10),没问题吧,所以sum(11) = 11 + sum(10)不难理解应该,同理 sum(12) = 12 + sum(11)等等,很容易退出sum(n+1) = sum(n) + (n+1)或者sum(n) = n+ sum(n-1),这不应该没问题
所以有一个公式,sum(n) = sum(n-1) + n.如果理解了上面递归可能理解了一大半了
下面我们写一个测试递归的代码
package recursive;public class Recursive{ public int sum(int x) { if(x==1) { return 1; } else { return x + sum(x-1); } } public static void main(String[] args) { Recursive recursive = new Recursive(); System.out.println(recursive.sum(10)); }}上述代码我来描述下,在打印的时候,看到
recursive.sum(10)
我们回去调用上面的方法,上面的方法返回来的其实是10 + sum(9),出现sum(9)了再去调用方法,就变成了10+9+sum(8),其实就是19+sum(8)
然后继续调用变成19+8+sum(7)=27+sum(7)
就是这样最终调用成为(10+9+8+7+6+5+4+3+2+sum(1))sum(1)是1所以整个结果再加一,就完成了整个计算
转载地址:https://blog.csdn.net/xiaoji94shen/article/details/17993427 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 05时07分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python实现推流直播
2019-04-26
你不得不了解的卷积神经网络发展史
2019-04-26
你不得不了解的机器学习知识
2019-04-26
你不得不了解的深度学习知识(一)
2019-04-26
你不得不了解的深度学习知识(二)
2019-04-26
AI算法之Encoder-Decoder 和 Seq2Seq
2019-04-26
AI算法之Attention机制
2019-04-26
人体口罩佩戴检测实战
2019-04-26
[YoLoV3目标检测实战] keras+yolov3训练自身口罩检测数据集
2019-04-26
[实战]200类鸟类细粒度图像分类
2019-04-26
【实战】英文垃圾短信分类
2019-04-26
FFmpeg初遇见_基本命令
2019-04-26
Urbansound8k声音分类深度学习实战
2019-04-26
pytorch版本下的yolov3训练实现火焰检测
2019-04-26
yolov4训练自己的数据集实现安全帽佩戴检测
2019-04-26
EfficientDet训练自己的数据集实现抽烟检测
2019-04-26
【工具篇】10分钟快速上手git与github
2019-04-26
【开发篇】10分钟快速上手spring boot
2019-04-26
【开发篇】10分钟快速spring boot+react前后端分离
2019-04-26
【开发篇】10分钟快速上手spring boot+mybatis增删改查
2019-04-26