其實很多人小時候都算過這樣類似的題目:
雞兔同籠,頭15只,腳40只,問雞和兔子各多少只?
小學的時候,有小朋友會這樣算,1個數1個數的湊,假設雞有1只,那麼兔就有14只,腿共有58條;雞有2只,那麼兔就有13只,腿共有56條……依次類推,直到雞有10只,兔有5只,腿共有40條時,才找到所求的答案。這個算是笨辦法,從雞開始乙隻乙隻的算,至少算10次,如果有小朋友運氣好,從兔子開始乙隻乙隻的算,算5次就找到答案了。
這是一種最笨的辦法,這種演算法只適合小數量計算,如果有上百隻雞和兔子,非得把小朋友累死不可。
中學的時候,通常學過代數的同學,一定會想到先列方程,馬上在紙上寫下:
設雞為x只,兔為y只。這是我們普通人的思維。即便是按照二元一次方程解下來,差不多也要算上十來步,表面上也不省事,但是基本上能解決所有類似的有關問題。x+y=15
2x+4y=40
y=15-x
2x+4*(15-x)=40
2x+60-4x=40
60-2x=40
2x=20
x=10
y=5解得x =10,y =5。
解方程也有技巧,網上有乙個快速的方程解法:
x+y=15 …….(1)這種方法可以省好幾步。2x+4y=40 …….(2)
由(1)的兩邊同乘以2 得: 2x+2y=30 …….(3)
然後 (2)-(3) 得: 2y=10 即 y=5
所以 x+5=15 —-〉x=10
今天在網上看到乙個非常好玩的解法,太搞笑了,也太高效了。
演算法:假設雞和兔訓練有素
吹一聲哨,它們抬起乙隻腳,(40-15=25)
再吹一聲哨,它們又抬起乙隻腳,(25-15=10)
這時雞都一屁股坐地上了,兔子還兩隻腳立著
所以,兔子有10/2=5只,雞有15-5=10只。
這就是高效的演算法!
看到這個題目,我真的想起了我的種種童年趣事。過不了幾年,我就可以用這種有趣的數學題去考我的女兒了,哈哈!不,今年回家就可以考考在老家讀書的侄子和侄女了。
網上的80后們,以後如果有空的話,真的都要收集一些有趣的知識,留著給下一代顯擺,以便培養他們的學習興趣了。
64 雞兔同籠
時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 已知雞和兔的總數量為n,總腿數為m。輸入n和m,依次輸出雞和兔的數目,如果無解,則輸出 no answer 不要引號 輸入第一行輸入乙個資料a,代表接下來共有幾組資料,在接下來的 a 10 a行裡,每行都有乙個n和m.0輸出 輸...
例題 雞兔同籠
問題描述 乙個籠子裡面關了雞和兔子 雞有2隻腳,兔子有4隻腳,沒有例外 已經知道了籠子裡腳的總數a,問籠子裡面至少有多少只動物,至多有多少只動物?輸入資料 第一行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔一行,每行包含乙個正整數a a 32768 輸入要求 輸入包含n行,每行對應乙個輸入,...
acm雞兔同籠
描述 已知雞和兔的總數量為n,總腿數為m。輸入n和m,依次輸出雞和兔的數目,如果無解,則輸出 no answer 不要引號 輸入 第一行輸入乙個資料a,代表接下來共有幾組資料,在接下來的 a 10 a行裡,每行都有乙個n和m.0輸出 輸出雞兔的個數,或者no answer 樣例輸入 2 14 32 ...