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

- 上一篇
scratch 2.0 自定義模塊的簡單解釋
在scratch 2.0中,可以自己定義命令模塊。這個功能在實(shí)踐中有很多好處??梢跃喅绦?。在對同一個程序調(diào)用過程中,只要定義過一次,可以多次調(diào)用。 在自定義的過程中也是需要注意幾點(diǎn)。自定義模塊中,新建模塊后,有個選項(xiàng),這里點(diǎn)開,有若干個選項(xiàng)。
- 下一篇
游戲+數(shù)學(xué)+程序員=小學(xué)生也懂的Scratch : 編程是什么?難不難?
在進(jìn)入正式的課程前,我想首先來回答很多人,特別是很多家長和孩子們,都關(guān)心的兩個問題,那就是: 編程究竟是什么? 編程到底難不難?