Welcome 微信登录

首页 / 操作系统 / Linux / Java版百钱买百鸡

我国古代数学家张丘建在《张丘建算经》一书中提出了“百鸡问题”: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? public class ChickenBuy { /** * 百钱买百鸡问题 * @param args */ static int x;//可买鸡翁只数 static int y;//可买鸡母只数 static int z;//可买鸡雏只数 //方法一 :循环列举法 public void method1(){ x=0; while(x<=19){ y=0; while(y<=33){ z=100-x-y; if(x*5+y*3+z/3==100&&z%3==0&&x!=0){ System.out.println("可买鸡翁只数:"+x); System.out.println("可买鸡母只数:"+y); System.out.println("可买鸡雏只数:"+z); System.out.println("-------------------"); } y++; } x++; } } //方法二:循环法二 public static void method2(){ for(int x=1;x<=100/5;x++){ for(int y=0;y<=33;y++){ z=100-x-y; if(x*5+y*3+z/3==100&&z%3==0){ System.out.println("可买鸡翁只数:"+x); System.out.println("可买鸡母只数:"+y); System.out.println("可买鸡雏只数:"+z); System.out.println("-------------------"); } } } } //方法三:循环法三 public static void method3(){ //有两个方程求解得 //z=3/4*x+75; //所以z的最小值为75,最大值为90 while(z<=90&&z>=75){ y=200-7/3*z; x=4/3*z-100; if(x>=0&&y>=0){ System.out.println("可买鸡翁只数:"+x); System.out.println("可买鸡母只数:"+y); System.out.println("可买鸡雏只数:"+z); System.out.println("-------------------"); } z+=3; } } public static void main(String[] args) { method3(); } }