当前位置: 首页 > news >正文

Java递归练习----猴子偷桃

问题: 

有一堆桃子,猴子第一天吃灵其中的一般,并在多吃了一个!以后每天猴子都吃其中的一半,然后多吃一个。当到第十天时,想再吃时(即还没吃),发现只有1个桃子了,问最初多少个桃子?

递归的内存执行机制: 

此图片和问题无关,就是一个例子,大家可以根据我的标注一点点看,如果看不懂的话,可以看一下:传送门

上述图片来源于韩顺平老师讲Java课的图片 

递归可以理解为一直自己调用自己,根据栈空间,每次调用方法都会创建一个新的数据空间,一直到条件不允许执行,结果递归,一层层回去。每次的返回证明这段栈空间的代码全部执行完毕,此方法也就从栈空间出去了,比如上述标4,5,6的地方!

递归需要注意一定要找到出口,换句话说就是结束递归的条件。不然就成“死龟了”。 

代码: 

class Tool
{
	int res = 0;
	public int rec(int d)
	{
		if(d == 10)
		{
			return 1;
		}
		res = (rec(d+1) + 1 ) * 2;
		return res;
	}	
}

public class test6
{
	public static void main(String[] args)
	{
		int d = 1;
		Tool t = new Tool();
		int res = t.rec(d);
		System.out.println(res);
	}		
}

规律: 

当前的桃子 = (后一天的桃子 + 1) * 2

 欢迎喜欢的小伙伴关注哦,上述规律大家可以自己推一下,这里需要逆向思维一下,如果有错误欢迎留言!

 

相关文章:

  • 基于ueditor编辑器的功能开发之增加自定义一键排版功能
  • Java IO 流
  • 【资料分享】瑞芯微RK3576,8核2.2GHz+6T算力NPU工业核心板说明书
  • STM32(基于标准库)
  • 多模态大模型[CLIP/Flamingo/Coca/BLIP]
  • Unity入门
  • 图谱可视化的海洋生物信息查询网站的设计与实现(springboot+ssm+vue)含文档
  • 十八、TCP多线程、多进程并发服务器
  • 气动V型调节开关球阀气源连接尺寸与方式全解析-耀圣
  • 2025 GGS全球游戏峰会前瞻预告:全新版本控制平台Perforce P4、龙智游戏开发及管理解决方案等即将亮相
  • 【家政平台开发(37)】家政平台蜕变记:性能优化与代码重构揭秘
  • Dify添加ollama插件
  • OpenHarmony5.0.2 音频audio适配
  • js中this的指向问题
  • 智能测试用例生成:老旧平台页面查询功能的大模型改造
  • 跨站请求是什么?
  • Mac os 本地搭建部署dify
  • 如何在 Linux 中彻底终止被 `Ctrl+Z` 挂起的进程?
  • 前端基础之《Vue(4)—响应式原理》
  • HCIP(网络类型)
  • 正能量网站ip/新乡搜索引擎优化
  • 让别人做网站的步骤/怎么引流怎么推广自己的产品
  • 佛山市手机网站建设公司/云南seo简单整站优化
  • 微网站建设企划书/经典广告
  • 自己做的网站做登录/百度广告代理公司
  • 企业网站设计调查问卷/深圳市昊客网络科技有限公司