递归浅析
发布日期: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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java实现水仙花数
下一篇:正则表达式中模式修正符作用详解(i、g、m、s、x、e)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 05时07分47秒