Python練習題 015:一顆自由落地的球,python015

來源:互聯網
上載者:User

Python練習題 015:一顆自由落地的球,python015

【Python練習題 015】 一球從100米高度自由落下,每次落地後反跳回原高度的一半,再落下。求它在第10次落地時,共經過多少米?第10次反彈多高?

----------------------------------------------------------

這題其實都可以筆算出來,因為也就是落地10次。看網上給出的結果也是五花八門,也不知道自己算的對不對,請大神們賜教。

我的思路是:除了第1次從100米高度落下,其餘的9次都經曆了“反彈-落地”的過程,每個過程來回走過的長度相當於上一個過程的高度。因此,把第1個過程初始化並賦值,從第2個過程開始,先次上一個過程的高度計算進去,再將高度減半,傳遞給下一個過程進行計算。代碼如下:

a = [100]  #每個‘反彈落地’過程經過的路程,第1次只有落地(100米)h = 100  #每個‘反彈落地’過程,反彈的高度,第1次為100米print('第1次從%s米高落地,走過%s米,之後又反彈至%s米。' % (h, a[0], h/2))for i in range(2,11):  #第1次已初始化,再迴圈9次    a.append(h)  #先計算路程,再高度減半,因為一個‘反彈落地’為2個高度    h = h / 2    print('第%s次從%s米高落地,共走過%s米,之後又反彈至%s米。' % (i, h, sum(a), h / 2))

輸出結果如下:

第1次從100米高落地,走過100米,之後又反彈至50.0米。
第2次從50.0米高落地,共走過200米,之後又反彈至25.0米。
第3次從25.0米高落地,共走過250.0米,之後又反彈至12.5米。
第4次從12.5米高落地,共走過275.0米,之後又反彈至6.25米。
第5次從6.25米高落地,共走過287.5米,之後又反彈至3.125米。
第6次從3.125米高落地,共走過293.75米,之後又反彈至1.5625米。
第7次從1.5625米高落地,共走過296.875米,之後又反彈至0.78125米。
第8次從0.78125米高落地,共走過298.4375米,之後又反彈至0.390625米。
第9次從0.390625米高落地,共走過299.21875米,之後又反彈至0.1953125米。
第10次從0.1953125米高落地,共走過299.609375米,之後又反彈至0.09765625米。

即:第10次落地時,共走過了299.609375米,第11次反彈至0.09765625米的高度。

 

++++++++++++++++++++++++++++++++++++++

題目出處:程式設計語言入門經典100例【Python版】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.