同步至 github-weeklyarts-algorithm
有個老父親,有17頭羊,臨終前把三個兒子叫來。分給大兒子一半的羊,二兒子1/3的羊,小兒子1/9的羊。三個兒子不知道怎麼分,只好請教鄰居。聰明的鄰居借給了他們一頭羊,這樣總共就有18頭。大兒子領走一半9頭羊,二兒子領走1/3共6頭羊,小兒子領走1/9,也就是2頭羊。鄰居最後把借的羊牽回去了。我們的問題是,滿足這樣條件的數字還有哪些?即遺產有n頭羊,大兒子分得1/x, 二兒子分得1/y, 小兒子分得1/z,鄰居借給一頭羊。請程式設計找出這些滿足條件的(n, x, y, z)。
先估算出n的取值範圍,再根據判斷條件編寫程式。
假如先從 1/2 + 1/3 + 1/4 開始計算結果值,發現其大於1,而我們需要找的是x y z三值加起來的結果小於等於1,因此我們對其中乙個值不斷增大。
當我們發現 1/2 + 1/3 + 1/7 小於1時,此時可以列不等式 1/2 + 1/3 + 1/7 >= n/n+1,解得 n <= 41。所以程式如下:
#include#includeintmain()}}
}}
}printf(
"滿足條件的(n, x, y, z)為%d\n
",counter);
return0;
}/*output
n=19,x=5,y=4,z=2
n=11,x=6,y=4,z=2
n=41,x=7,y=3,z=2
n=23,x=8,y=3,z=2
n=17,x=9,y=3,z=2
n=14,x=10,y=3,z=2
滿足條件的(n, x, y, z)為6
*/
數學趣題 魔幻方陣
問題 在n n的矩陣中填寫1 n n這n n個數字。使得它的每一行 每一列以及兩個對角線之和均相等。求出乙個這樣的三階魔幻方陣 最簡單,效率最低的窮舉法可以解。原始碼 include2 3 int match int i,int j,int k,int l,int m,int n,int o,int...
數學趣題 常勝將軍
21根火柴,a和b每人每次可以取走1 4根,不可多取,也不可不取,取最後一根火柴者輸,要求a先取,b後取。如何保證b永遠是勝利者。即必須是b最後只留給a 1根火柴。也就是除了最後第21根火柴,之前的每一輪都必須保證a和b取到的火車數之和為5。include 2 3 int main 4 16 17 ...
數學趣題 新郎和新娘
新郎a,b,c。新娘x,y,z。a說他將和x結婚,x說她將和c結婚,c說他將和z結婚。這三句全是假的。請問真正是怎麼配對 可以用窮舉法,一共3 2 1種可能方案。a,b,c位置不變,不斷調換x,y,z的位置。include 2 3 int match int i,int j,int k,char w...