編程真題:李白沽酒
使用 Scratch 解決數(shù)學(xué)難題,下面有一道古代算題,出自清代《增減算法統(tǒng)宗》,我們先來(lái)看一下:
李白沽酒探親朋,
路途迢迢有四程,
行至一程多一倍,
卻被書(shū)童喝六升,
行到親朋家里面,
半點(diǎn)全無(wú)在酒瓶,
借問(wèn)高朋能算士,
幾何原酒要分明。
編程實(shí)現(xiàn):
詩(shī)人李白買(mǎi)了酒去看望親朋好友,路途很遙遠(yuǎn)分四段才能走到,每走一段路程, 就在路邊酒館中按酒瓶中的酒量向酒瓶中添加一倍的酒,但是每次添加完酒后被隨從 的小書(shū)童偷偷喝掉 6 升(書(shū)童的酒量也這么大?),當(dāng)李白來(lái)到親朋家里的時(shí)候,卻 發(fā)現(xiàn)酒瓶是空的,請(qǐng)問(wèn)瓶中原來(lái)是多少酒呢?(答案: 5.625 )
【首先我們用反推法來(lái)重新解決這個(gè)問(wèn)題,假設(shè)時(shí)間可以倒流(就像電影回放一 樣),讓李白從親朋好友家中倒著走回去,讓書(shū)童由喝酒 6 升變成加酒 6 升,同時(shí)添 酒一倍變成減酒一半,那么最后酒瓶中剩余的酒是“0”,上一次休息“添加酒”前酒 瓶中剩余的酒就是:(0+6)除以 2(把偷喝的 6 升酒還回去,然后把添加的一倍酒拿 掉),這個(gè)過(guò)程經(jīng)過(guò) 4 次迭代,就可以算出瓶中有多少酒了。】
編程實(shí)現(xiàn):
如果題目再難一點(diǎn),比如現(xiàn)在路程變的更遠(yuǎn)了,不是 4 程了,是 400 程,也就是 要添酒和偷喝酒 400 次了,再來(lái)算算看!(答案: 6 )

- 上一篇
編程真題:古題算法
明代數(shù)學(xué)家吳敬《九章算法比類(lèi)大全》中有這樣一首詩(shī):“遠(yuǎn)看巍巍塔七層,紅 光點(diǎn)點(diǎn)倍加增,共燈三百八十一,請(qǐng)問(wèn)尖頭幾盞燈?”這首詩(shī)的意思是:“從遠(yuǎn)處看一座宏偉的 7 層寶塔,每層都掛著紅色燈籠,寶塔 從最上層開(kāi)始,下面一層的燈籠數(shù)量都是上一層的 2 倍,我們知道這座寶
- 下一篇
編程真題:計(jì)算數(shù)根
數(shù)根(又稱(chēng)數(shù)字根 Digital root)是自然數(shù)的一種性質(zhì),換句話(huà)說(shuō),每個(gè)自然數(shù)都有 一個(gè)數(shù)根。 數(shù)根是將一正整數(shù)的各個(gè)位數(shù)相加(即橫向相加),若加完后的值大于等于 10 的 話(huà),則繼續(xù)將各位數(shù)進(jìn)行橫向相加直到其值小于十為止,或是,將一數(shù)字重復(fù)做數(shù)字 和,直到其值小于十為