一次迴圈實現百雞百錢問題
阿新 • • 發佈:2019-02-09
問題描述:
我國古代數學家張丘建在《張丘建算經》一書中提出了“百雞問題”:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?
題目分析與演算法設計:
設雞翁、雞母、雞雛分別為x、y、z,則可等到一下兩個方程式:
5*x+3*y+z/3=100
x+y+z=100
用x分別表示y和z,可以得到:y=(100 - 7 * x) / 4,z=(300 + 3 * x) / 4,並且x和y均為0至100間的整數。由於y不小於零,可以得到x<15.
所以只需對x進行15次迴圈即可得到所有的購買組合:
輸出結果:public class Test { public static void main(String[] args) { for (int x = 0; x < 15; x++) { int y = (100 - 7 * x) % 4; int z = (300 + 3 * x) % 4; if (y == 0 && z == 0) { int hen = (100 - 7 * x) / 4; int chi = (300 + 3 * x) / 4; System.out.println("公雞:" + x + "只, 母雞:" + hen + "只, 小雞:" + chi + "只"); } } } }
公雞:0只, 母雞:25只, 小雞:75只
公雞:4只, 母雞:18只, 小雞:78只
公雞:8只, 母雞:11只, 小雞:81只
公雞:12只, 母雞:4只, 小雞:84只