陳新龍
前幾天外出教學培訓的時候,有幸遇到了一位六年級的小粉絲,他對我說:“小陳老師能不能寫一些比較簡單的算法題目呀,有些算法太難了我實在是看不懂。”小陳老師這次就挑選了一道簡單有趣的算法。
濤濤摘蘋果:濤濤家的院子里有一棵蘋果樹,每到秋天樹上就會結出10個蘋果。蘋果成熟的時候,濤濤就會跑去摘蘋果。濤濤有個30厘米高的板凳,當他不能直接用手摘到蘋果的時候,就會踩到板凳上再試試。現在已知10個蘋果到地面的高度(隨機取100cm~200cm),以及濤濤把手伸直的時候能夠達到的最大高度(由用戶輸入),請幫濤濤算一下他能夠摘到的蘋果的數目。假設他碰到蘋果,蘋果就會掉下來(圖1)。

題目比較簡單,讓我們一起幫助濤濤摘蘋果吧。在程序中,我們用列表存儲蘋果的高度,并且固定板凳高度為30;接著詢問濤濤目前把手伸直的時候能達到最高的高度是多少,加上30就是當前能觸及的上限。與列表中數據依次比較大小,并且把它們都輸出到結果列表中,最后結果列表的項目數就是我們需要的答案了。
首先我們創建兩個列表,一個列表代表蘋果的高度,通過重復執行10次,在列表中添加10個100到200之間的隨機數加入到蘋果高度列表中(圖2)。

另外一個列表將用于存放濤濤能夠摘到蘋果的高度。并且需要添加固定的變量:摘到蘋果的數量、濤濤能伸手到達的高度,以及板凳高度。根據題目將板凳高度設置為30,詢問濤濤把手伸直能達到的高度。實際上的總高度等于濤濤伸手的高度+凳子的高度,然后循環10次,判斷蘋果的高度是否小于濤濤伸手的高度+凳子的高度,如果成功摘到蘋果將蘋果的高度輸出到另外一個列表中(圖3)。

這道簡單的算法題目就完成了,往后我也會綜合更多的知識,把有趣的算法知識帶給大家。