資訊內容
Scratch編程解決小學奧數題中一類經典題型!
《韓信點兵》是小學奧數題中一類經典題型:韓信帶兵1500人去打仗,戰死四五百人。戰后清點人數時,韓信命令士兵每3人站一排,多出2人;每5人站一排,多出3人;每7人站一排,多出2人。韓信由此馬上算出了士兵人數。請你也算一算,這支部隊在戰后還有多少人?
記得小時候老師是這么教的:
能除以3余2的數有:2,5,8,11,14……
能除以5余3的數有:3,8,13,18,23……
上面兩列數中,首先出現的公共數是8,3和5的最小公倍數是15,能同時滿足除以3余2,除以5余3這兩個條件的數就是8+15X的整數。
列出這樣的整數有:8,23,38……
能除以7余2的數有:2,9,16,23,30……
如此公共數為23,7和15的最小公倍數為105,即符合題目條件的數為23+105X的整數。再根據題目條件帶兵1500人,戰死四五百,即戰后人數在1000~1100人,最終得出X=10,部隊戰后還剩余士兵1073人。
那要是不會這種巧妙的算法怎么辦呢?那就只能用死辦法了唄:一共1500人,戰死四五百,那就是大概在1000~1100這個范圍之內,然后從1000開始,1001,1002,1003……依次除以3,滿足余2的再除以5,滿足除以5余3的再除以7。
這樣的方法對于人來說工作量大,且過于枯燥,也很容易因疲勞而出錯。但是,這對于計算機來說卻很簡單,正好發揮計算機預算速度快的優勢。在編程算法中還有專屬于這種“笨”辦法的名字呢——枚舉法。
下面即用Scratch編寫的程序代碼和輸出結果:
這個結果中已記錄了1000~1500間所有滿足條件的整數,最后根據題目要求選取答案即可。
軟件可在MIT Scratch官網https://scratch.mit.edu免費下載。
非常可愛友好的軟件界面:
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
