古典问题-百钱买百鸡

问题描述:

  公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

问题分析:

     假设 鸡翁: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);
                    }
                }
            }
        }
    }
}
原文地址:https://www.cnblogs.com/weixiaotao/p/12543343.html