背景需求:
猴子摘桃的题目
解决:
''' 猴子吃桃 倍数问题 作者:阿夏 时间: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 个