#題目:猴子第一天在下若干個桃子,當即吃了一半,還不過癮,有多吃了一個 #第二天早上又將剩下的桃子吃掉一半,有多吃了一個。以后每天早上都吃了前 #一天剩下的一半多一個。到第十天早上想在吃,見只剩下一個桃子了。 #求:第一天總共摘了多少桃子?? #總共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