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

猴子吃桃.

本节通过学习解决一个有趣的问题来加深对递归的理解.

问题描述:

有一个猴子摘了桃子吃,第一天吃一半多一个,第二天吃第一天剩余的一半多一个,第三天吃第二天剩余的一半多一个..以此类推,当第n天时,恰好只剩下一个桃子.求猴子一共摘了多少桃子.

思路解析:

解读题目,第n天的桃子数量与第n-1天的数量关系如下:peach(n-1)=[peach(n)+1]*2

因此,想知道第一天的桃子数量必然需要知道第二天的桃子数量,就必然要知道第三天的桃子数量,以此类推,第n天的桃子数量就为1,递推关系十分清晰.那么接下来确定递归终止条件,当n等于1时,相当于达到了第n天的情况,即只剩下一个桃子,返回1给上层主调函数.

代码如下:

class Solution(object):def monkey(self, n):# 基本情况:如果只剩下1个桃子,则返回1if n == 1:return 1else:# 递归情况:计算前一天的桃子数量,然后加1(因为猴子多吃了一个),再乘以2(因为猴子吃掉了剩下桃子的一半)return (self.monkey(n-1) + 1) * 2

http://www.lryc.cn/news/515142.html

相关文章:

  • 游戏引擎学习第72天
  • element-ui dialog 组件源码分享
  • unity开发之shader 管道介质流动特效
  • 人工智能之机器学习算法
  • Android布局layout的draw简洁clipPath实现圆角矩形布局,Kotlin
  • 信息系统常见的系统架构
  • AngularJS 过滤器:提升用户体验的数据处理利器
  • Upload-labs 第四关(学习记录)
  • 金融租赁系统的创新与发展推动行业效率提升
  • MYSQL在Windows平台上的限制
  • Rust 泛型、特征与生命周期详解
  • 基于 Python 虎扑网站的 NBA 球员大数据分析与可视化
  • 小程序组件 —— 26 组件案例 - 跳转到商品列表
  • 【Spring学习】为什么Spring中的IOC(控制反转)能够降低耦合性(解耦)?
  • 机场安全项目|基于改进 YOLOv8 的机场飞鸟实时目标检测方法
  • 卸载干净 IDEA(图文讲解)
  • 云端微光,AI启航:低代码开发的智造未来
  • 工程师了解的Lua语言
  • 著名的软件都用什么语言编写?
  • 设计模式 结构型 代理模式(Proxy Pattern)与 常见技术框架应用 解析
  • Linux环境(CentOs7) 安装 Node环境
  • Tailwind CSS 实战:现代登录注册页面开发
  • Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结
  • 反向传播算法的偏置更新步骤
  • 条款47:请使用 traits classes 表现类型信息(Use traits classes for information about types)
  • yolov5和yolov8的区别
  • Redis 实现分布式锁
  • django StreamingHttpResponse fetchEventSource实现前后端流试返回数据并接收数据的完整详细过程
  • SpringSpringBoot常用注解总结
  • 24.小R的随机播放顺序<字节青训营-中等题>