古典问题-百钱买百鸡
问题描述:
公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
问题分析:
假设 鸡翁:x只,鸡母-y只、鸡雏-z只,则需满足
x+y+z = 100;
5x+3y +z/3 = 100; 其中z满足 z%3 =0;
若x=0
y+z=100;
3y+z/3 =100; => x=0 y=25 z=75
若y=0
x+z =100
5x +z/3 = 100 => x=14.3 y=0 z=85.7
经分析:鸡雏的个数可从 75 开始 每次递增 3 (直到84),往方程中带入即可,当想,x,y,z均为正数即为百钱买百鸡的可行方案。
编程解决:
public class Test01 { /** * 鸡翁:k只,鸡母-j只、鸡雏-z只 * @param args */ public static void main(String[] args) { for(int i=75;i<=84;i=i+3){ for(int j=0;j<=33;j++){ for(int k=0;k<=20;k++){ if((i+j+k) == 100 && (i/3 + 3*j + 5*k) == 100){ System.out.println("鸡翁:" + k+ "只, 鸡母" + j + "只, 鸡雏"+ i); } } } } } }