Python趣味編程3則:李白買酒、猴子喫桃、寶塔上的琉璃燈

1、李白買酒

問題描述:

李白街上走,提壺去買酒。遇店加一倍,見花喝一斗。店不相鄰開,花不成雙長。三遇店和花,喝光壺中酒。請問此壺中,原有多少酒?

簡單分析:

題目中加一倍是指再購買和壺中酒同樣數量的酒,喝一斗是指喝掉壺中的一斗酒。根據描述,李白應該是先後遇到了酒店、鮮花、酒店、鮮花、酒店、鮮花,最後正好把酒喝完。

要計算酒壺中原有多少酒,可以從後向前倒推,最後喝完爲0,往前遇到鮮花加1鬥,再往前遇到酒店減爲一半,如此操作三次之後,得到的數字即爲初始狀態時酒的數量。

參考代碼:

運行結果:0.875

 

2、寶塔上的琉璃燈

問題描述:

有一座八層寶塔,每一層都有一些琉璃燈,每一層的燈數都是上一層的二倍,已知共有765盞琉璃燈,求解每層各有多少。

簡單分析:

可以假設最高層琉璃燈的數量爲1、2、3、4...,然後分別計算各層燈數,如果各層燈數之和爲765,則給出答案並停止假設。

參考代碼:

上面代碼中使用到了標準庫itertools中的函數count(start, step),返回包含從start開始且以step爲步長的無限長整數數列(start, start+step, start+2*step, start+3*step,...)的count對象。

代碼中使用列表推導式計算假設頂層燈數爲first時各層的燈數。

運行結果:

下面是求解問題的另一個思路:

假設頂層燈數爲x,那麼頂層燈數計算方法如下:

 

參考代碼:

 

3、猴子喫桃

問題描述:

小猴子有一天摘了很多桃子,一口氣喫掉一半還不過癮,就多吃了一個;第二天又喫掉剩下的桃子的一半多一個,以後每天都是喫掉前一天剩餘桃子的一半還多一個,到了第五天再想喫的時候發現只剩下一個了。問小猴子最初摘了多少個桃子。

簡單分析:

從後向前看,每天剩餘桃子的數量加上1再乘以2就是前一天桃子的數量。

參考代碼:

 

運行結果:46

---董付國老師Python系列圖書---

友情提示:不建議購買太多,最好先通過京東、噹噹、天貓查閱圖書瞭解目錄和側重點,然後再選擇購買適合自己的書。

(1)《Python程序設計(第2版)》(ISBN:978-7-302-43651-5),清華大學出版社,2016年8月出版,2019年度清華大學出版社暢銷圖書

(2)《Python可以這樣學》(ISBN:978-7-302-45646-9),清華大學出版社,2017年2月

(3)《Python程序設計基礎(第2版)》(ISBN:978-7-302-49056-2)清華大學出版社,2018年1月出版,2019年度清華大學出版社暢銷圖書

(4)《中學生可以這樣學Python》(ISBN:978-7-302-48039-6)清華大學出版社

(5)《Python程序設計開發寶典》(ISBN:978-7-302-47210-0)清華大學出版社,2018年10月

(6)《玩轉Python輕鬆過二級》(ISBN:978-7-302-49916-9)清華大學出版社,2018年5月

(7)《Python程序設計基礎與應用》(ISBN:978-7-111-60617-8),機械工業出版社,2018年9月

(8)《Python程序設計實驗指導書》(ISBN:9787302525790),清華大學出版社,2019年4月

(9)《Python編程基礎與案例集錦(中學版)》(ISBN:978-7-121-35539-4),電子工業出版社,2019年4月

(10)《大數據的Python基礎》(ISBN:978-7-111-62455-4),機械工業出版社,預計2019年5月出版

(11)譯作《Python程序設計》,機械工業出版社(華章),2018年11月出版

(12)繁體版《Python也可以這樣學》,臺灣博碩文化股份有限公司,2017年10月出版,本書爲《Python可以這樣學》在臺灣發行的繁體版,兩本書內容一樣,不建議重複購買。

(13)《Python程序設計實例教程》(ISBN:978-7-111-63198-9),機械工業出版社

(14)《Python數據分析、挖掘與可視化》(ISBN:978-7-115-52361-7),人民郵電出版社,2019年12月

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章