陳新龍
前幾天外出教學(xué)培訓(xùn)的時(shí)候,有幸遇到了一位六年級(jí)的小粉絲,他對(duì)我說:“小陳老師能不能寫一些比較簡單的算法題目呀,有些算法太難了我實(shí)在是看不懂?!毙£惱蠋熯@次就挑選了一道簡單有趣的算法。
濤濤摘蘋果:濤濤家的院子里有一棵蘋果樹,每到秋天樹上就會(huì)結(jié)出10個(gè)蘋果。蘋果成熟的時(shí)候,濤濤就會(huì)跑去摘蘋果。濤濤有個(gè)30厘米高的板凳,當(dāng)他不能直接用手摘到蘋果的時(shí)候,就會(huì)踩到板凳上再試試?,F(xiàn)在已知10個(gè)蘋果到地面的高度(隨機(jī)取100cm~200cm),以及濤濤把手伸直的時(shí)候能夠達(dá)到的最大高度(由用戶輸入),請(qǐng)幫濤濤算一下他能夠摘到的蘋果的數(shù)目。假設(shè)他碰到蘋果,蘋果就會(huì)掉下來(圖1)。
題目比較簡單,讓我們一起幫助濤濤摘蘋果吧。在程序中,我們用列表存儲(chǔ)蘋果的高度,并且固定板凳高度為30;接著詢問濤濤目前把手伸直的時(shí)候能達(dá)到最高的高度是多少,加上30就是當(dāng)前能觸及的上限。與列表中數(shù)據(jù)依次比較大小,并且把它們都輸出到結(jié)果列表中,最后結(jié)果列表的項(xiàng)目數(shù)就是我們需要的答案了。
首先我們創(chuàng)建兩個(gè)列表,一個(gè)列表代表蘋果的高度,通過重復(fù)執(zhí)行10次,在列表中添加10個(gè)100到200之間的隨機(jī)數(shù)加入到蘋果高度列表中(圖2)。
另外一個(gè)列表將用于存放濤濤能夠摘到蘋果的高度。并且需要添加固定的變量:摘到蘋果的數(shù)量、濤濤能伸手到達(dá)的高度,以及板凳高度。根據(jù)題目將板凳高度設(shè)置為30,詢問濤濤把手伸直能達(dá)到的高度。實(shí)際上的總高度等于濤濤伸手的高度+凳子的高度,然后循環(huán)10次,判斷蘋果的高度是否小于濤濤伸手的高度+凳子的高度,如果成功摘到蘋果將蘋果的高度輸出到另外一個(gè)列表中(圖3)。
這道簡單的算法題目就完成了,往后我也會(huì)綜合更多的知識(shí),把有趣的算法知識(shí)帶給大家。