python2.7練習小例子(二十)

    20):題目:猴子吃桃問題:猴子第一天摘下若干個桃子,立即吃了一半,還不癮,又多吃了一個次日早上又將剩下的桃子吃掉一半,又多吃了一個。之後天天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。python

    程序分析:採起逆向思惟的方法,從後往前推斷。app

    程序源代碼:優化

 


#!/usr/bin/python # -*- coding: UTF-8 -*-  x2 = 1 for day in range(9,0,-1):  x1 = (x2 + 1) * 2  x2 = x1 print x1 

    以上實例輸出結果爲:spa

 

1534

    Python3 參考方案:.net

 

#!/usr/bin/python3 x = 1 for day in range(0,9):     x = (x+1)*2 print(x)

    公式推導:code

 

x÷2-1=1 x÷2=2 x = 4 4=(1+1)×2

    

#!/usr/bin/python # -*- coding: UTF-8 -*- m = [1] Tn = 1 for i in range(9): Tn = (Tn+1)*2 m.append(Tn) print(m[len(m)-1])

    Python3 參考方法:blog

 

#!/usr/bin/python3 x1=1 n1=9 while n1>0: x1=(x1+1)*2 print(n1,x1) n1=n1-1

    

#!/usr/bin/env python # -*- coding: utf-8 -*- def taozi(n): if n == 1: return 1 else: return (taozi(n-1)+1)*2 print taozi(10) #遞歸思路

    Python2.x 與 Python3.x 兼容:排序

 

#!/usr/bin/python # -*- coding: UTF-8 -*- daypeach = [] daypeach.append(1) curpeaches = lambda x: (x + 1) * 2 for i in range(0, 9): daypeach.append(curpeaches(daypeach[i])) print('第一天共摘了%d個' % daypeach[9])

    利用正序的遞歸排序,使用的是Python 3.6:遞歸

 

# -*- coding:UTF-8 -*- def fun(x): if x==10: return 1 else: return (fun(x+1)+1)*2 print(fun(1))

    

# -*- coding: UTF-8 -*- def peach(n): return 1 if n==1 else (peach(n-1)+1)*2 for i in range(1,11): print('第%d天原有%d個桃子,摘了%d個'%(i,peach(11-i),peach(11-i)/2+1))

    最後一個實例用的是遞歸,在前面的遞歸上有了一小部分優化。若是感受不錯的話,請多多點贊支持哦。。。utf-8

  原文連接:https://blog.csdn.net/luyaran/article/details/80063297

相關文章
相關標籤/搜索