#题目:猴子第一天在下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个 #第二天早上又将剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前 #一天剩下的一半多一个。到第十天早上想在吃,见只剩下一个桃子了。 #求:第一天总共摘了多少桃子?? #总共num个桃子 #第一天剩下num/2-1 #第二天剩下(num/2-1)/2 - 1 #第三天剩下((num/2-1)/2 - 1)/2 - 1 #...... #第十天剩1个 #第十天s10 = 1 #第九天s9 = 2(s10+1) = 2s10 + 2 #... #Sn = 2S(n+1)+2 ''' #递归方法 while True: day = int(input('请输入要查询的是第几天的桃子数量:')) def num_recu(day): if day == 10: return 1 else: return 2*num_recu(day+1)+2 if day<11 and day>0: sum = num_recu(day) print('第%d天共有%d个桃子'%(day,sum)) print('') else: print('输入错误,请重新输入') #for循环 x1,x2 = 0,1 for day in range(9,0,-1): x1 = (x2+1)*2 x2 = x1 print('第%d天共有%d个桃子'%(day,x1)) 这个版本看不懂我的哥 p = 1 print('第10天吃之前就剩1个桃子') for i in range(9,0,-1):#从9到1,步长为-1,也就是从9到1倒着循环 p = (p+1)*2 print('第%d天吃之前还有%d个桃子'%(i,p)) print('第一天共在了%s个桃子'%p) p=1 第一次循环是第九天,p=(1+1)*2 =4 第九天还有4个桃子 第二次循环 i = 8,所以第八天p = (4+1)*2 = 10个桃子 第三次循环 i = 7,所以第七天p = (10+1)*2 = 22个桃子 ...... ''' #while语句 day,p,x2 = 9,0,1 print('第9天吃之前还有1个桃子') while day>0: p = (x2+1)*2 x2 = p print('第%d天吃之前有%d个桃子'%(day,p)) day-=1