雞兔同籠問題 已知頭的數目為50 腳的數目為120 求雞和兔子的數量
對於雞兔同籠的問題,如果採用最簡單粗暴的解法,就是兩層for迴圈巢狀,分別求出i和j的值,即雞和兔子的數量。
**如下:
for
(int i =
0; i <
60; i++)}
}
執行結果如下:
不過這樣窮舉浪費了計算機的資源。
因為雞兔同籠問題,只可能有乙個解,所以當某一刻輸出滿足要求的 i 和 j 時,之後的運算都是沒有意義的,是對資源的浪費。
於是,我增加了break,當 i 和 j 輸出後,就停止迴圈。
**如下:
for
(int i =
0; i <
60; i++)}
}
從數學上,還有一種解決方案:設雞的數量為x,則有2x + 4(50-x)=120,直接就可以算出x的數值,答案也就迎刃而解。
將這個問題一般化,即已知籠子裡頭的數目為m,腳的數目為n,求雞和兔子的數量,就有:
①2i + 4(m-i)=n,易得 i=(4m-n)/2;
②4j + 2(m-i)=n,易得 j = (n-2m)/2。
所以,**如下:
int m =50;
int n =
120;
int i =(4
*m-n)/2
; int j =
(n-2
*m)/2;
system.out.
println
("籠子裡有"
+i+"隻雞,"
+j+"只兔。"
結果與之前的一模一樣。
雞兔同籠問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 已知雞和兔的總數量為n,總腿數為m。輸入n和m,依次輸出雞和兔的數目,如果無解,則輸出 no answer 不要引號 輸入第一行輸入乙個資料a,代表接下來共有幾組資料,在接下來的 a 10 a行裡,每行都有乙個n和m.0輸出 輸...
雞兔同籠問題
雞兔同籠,是中國古代著名典型趣題之一,記載於 孫子算經 之中。雞兔同籠問題,是小學奧數的常見題型。許多小學算術應用題和填空題都可以轉化成這類問題,或者用解它的典型解法 假設法 來求解。因此很有必要學會它的解法和思路。通常是假設法比較簡單易懂一點。雞兔同籠是中國古代的數學名題之一。大約在1500年前,...
雞兔同籠問題
已知雞和兔的總數量為n,總腿數為m。輸入n和m,依次輸出雞和兔的數目,如果無解,則輸出 no answer 不要引號 第一行輸入乙個資料a,代表接下來共有幾組資料,在接下來的 a 10 a行裡,每行都有乙個n和m.0輸出雞兔的個數,或者no answer 214 32 10 16 12 2 no a...