鱼C论坛

 找回密码
 立即注册
查看: 730|回复: 2

跪求这到题的解题思路

[复制链接]
发表于 2019-1-5 21:49:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩
下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少


代码
a = 1
for i in range(9):
    a = (a+1)*2
    print(i)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-5 23:00:29 | 显示全部楼层
本帖最后由 Stubborn 于 2019-1-5 23:05 编辑

是代码看不懂?
  1. a = 1
  2. for i in range(9):
  3.     a = (a+1)*2
  4.     print(a)
复制代码


a = 1 是最后一天的桃子数字,已经吃了9天,so range(9) .倒数第9天没吃的时候剩4个桃子。倒数第8天没吃的时候剩10个桃子。。。。。没吃桃子的时候剩1534个桃子
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-7 01:56:37 | 显示全部楼层
  1. # 设有图子n总共吃了m=10天,
  2. # 第十天已知只剩一个,因此逆向考虑,看作第一天吃了一个桃子
  3. # 下面用递归来解释这个问题
  4. def taozi(n):
  5.     if n == 1: return 1  # 第一天只一个桃子.第二天再去摘桃子
  6.     if n == 2: return 4 # 第二天的桃子数是 (n+1)*2= (1+1)*2=4
  7.     return (taozi(n-1) + 1) * 2  #第n天桃子数是 taozi(n) = (taozi(n-1)+1) *2

  8. print(taozi(10))
复制代码

  1. # 这个问题其实用循环也很好理解:
  2. # 第10只剩一个桃子,n = 1
  3. n = 1
  4. # 第9天,则是   桃子数/2 - 1 = n >>> 桃子数 = (n+1)*2
  5. for i in range(9,0,-1):
  6.     n = (n + 1) * 2
  7.     print("第{0}天桃子数:".format(i), n)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-6 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表