背景需求:
猴子摘桃的题目
解决:
'''
猴子吃桃 倍数问题
作者:阿夏
时间:2024年1月20日
'''
'''
猴子吃桃问题-1
猴子第一天摘了许多桃子,第一天吃了一半,;第二天又吃了一半,
后面每天都是这样吃。到第10天的时候,
猴子发现只有一个桃子了。问猴子第一天共摘了多少个桃子
'''
print('-----问题1----------')
a=[]
n=1
for i in range(10):
a.insert(0,n)
# insert在0的位置插入,[1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1]
# append 在-1位置插入 [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
n=n*2
print(a)
print('第 1 天猴子摘了',a[0],'个')
for x in range(1,len(a)): # 把列表0-10倒过来
if x==9:
print('第',x,'天猴子吃了',a[x],'个','此时只剩下',a[x],'个',)
else:
print('第',x,'天猴子吃了',a[x],'个')
print('第',x+1,'天猴子没有吃,还剩',a[x],'个')# 第10天=第9天
# [512, 256, 128, 64, 32, 16, 8, 4, 2, 1]
# 第 1 天猴子摘了 512 个
# 第 1 天猴子吃了 256 个
# 第 2 天猴子吃了 128 个
# 第 3 天猴子吃了 64 个
# 第 4 天猴子吃了 32 个
# 第 5 天猴子吃了 16 个
# 第 6 天猴子吃了 8 个
# 第 7 天猴子吃了 4 个
# 第 8 天猴子吃了 2 个
# 第 9 天猴子吃了 1 个 此时只剩下 1 个
# 第 10 天猴子没有吃,还剩 1 个
'''
猴子吃桃问题-02。
猴子第一天摘了许多桃子,
第一天吃了一半,然后忍不住又吃了一个;
第二天又吃了一半,再加上一个;
后面每天都是这样吃。到第10天的时候,
猴子发现只有一个桃子了。问猴子第一天共摘了多少个桃子
'''
print('-----问题2----------')
c=[]
n=1
for i in range(10):
c.insert(0,n)
# insert在0的位置插入
n=(n+1)*2
print(c)
# 这里是剩余的桃子数量
# [1534, 766, 382, 190, 94, 46, 22, 10, 4, 1]
# 这里计算猴子吃的桃子数量
# 计算第一个数与第二个数之间的差值并存入新变量 diff_first_second
a=[]
a.append(c[0]) # 1534个是桃子总数
for y in range(len(c)-1):
diff = int(c[y]) - int(c[y+1])
# print("第一个数与第二个数之间的差值为:", diff)
a.append(diff)
a.append(c[-1]) # 1是第10天剩余的
print(a)
print('第 1 天猴子摘了',a[0],'个')
for z in range(1,len(a)-1):
if z==9:
print('第',z,'天猴子吃了',a[z],'个','此时只剩下',a[z+1],'个',)
else:
print('第',z,'天猴子吃了',a[z],'个')
print('第',z+1,'天猴子没有吃,还剩',a[-1],'个')# 第10天=第9天
# -----问题2----------
# [1534, 766, 382, 190, 94, 46, 22, 10, 4, 1]
# [1534, 768, 384, 192, 96, 48, 24, 12, 6, 3, 1]
# 第 1 天猴子摘了 1534 个
# 第 1 天猴子吃了 768 个
# 第 2 天猴子吃了 384 个
# 第 3 天猴子吃了 192 个
# 第 4 天猴子吃了 96 个
# 第 5 天猴子吃了 48 个
# 第 6 天猴子吃了 24 个
# 第 7 天猴子吃了 12 个
# 第 8 天猴子吃了 6 个
# 第 9 天猴子吃了 3 个 此时只剩下 1 个
# 第 10 天猴子没有吃,还剩 1 个