《編》書(shū)裡引用了一道小學(xué)奧數(shù)題:
人過(guò)大佛寺 × 我 = 寺佛大過(guò)人
每個(gè)字代表一個(gè)數(shù)字,且各不相同,求解祝旷。
放在一個(gè)講編程的書(shū)裡尺迂,當(dāng)然也要給出一個(gè)程序解法:窮舉就可以了,把所有五位數(shù)都試一遍章母,當(dāng)然這會(huì)求出所有可能解。書(shū)中批評(píng)了這種“大人”的解決方法,而鼓勵(lì)我們?nèi)ニ伎嘉斯伲莻€(gè)時(shí)候小學(xué)生能寫(xiě)出現(xiàn)在大一的孩子都可能犯怵的程序?qū)嵲跁?huì)是奇葩。
我小學(xué)的時(shí)候數(shù)學(xué)不好毯焕,沒(méi)做過(guò)奧數(shù)題衍腥。就從那個(gè)時(shí)候開(kāi)始吧,就把自己當(dāng)作是一個(gè)小學(xué)生。
我的思路是這樣:
五位數(shù)乘以個(gè)位數(shù)還為五位數(shù)婆咸,且“我”大於1竹捉。那麼“人”必為小數(shù)(<5),“寺”應(yīng)為大數(shù)尚骄。遵循這個(gè)原則块差,可以通過(guò)代入試驗(yàn),找到可行解倔丈。
先試“人”為1的情況憾儒,不同個(gè)位數(shù)乘法結(jié)果末位為1,只有3和7乃沙。
假定“寺”為7起趾,“我”為3,那該式不能成立警儒,因?yàn)橐刮逦粩?shù)乘3大於70000训裆,首位應(yīng)該大於2。反之亦不成立蜀铲。排除“人”為1边琉。
再試“人”為2的情況。這時(shí)“我”不能大於5记劝。兩數(shù)相乘末位為2的有五個(gè)变姨,2×6,3×4厌丑,4×8定欧,6×7,8×9怒竿,其中只有4×8暫不能排除砍鸠。
只能令“我”為4,“寺”為8耕驰∫瑁“過(guò)”ד我”便不能有進(jìn)位,必小於3朦肘,而“人”已經(jīng)為2饭弓,所以排除。
“過(guò)”為1媒抠,“佛”ד我”的末位必為8弟断。所以“佛”只能為7。
而“大”×4的末位為“大”-3(減去進(jìn)位)领舰,“大”為9夫嗓。
至此迟螺,我們可以驗(yàn)證一下 21978 × 4 = 87912。