设为首页 加入收藏

TOP

Java版百钱买百鸡
2014-11-24 02:43:24 来源: 作者: 【 】 浏览:1
Tags: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();


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇QQ2440开发板在Ubuntu下下载内核 下一篇Ubuntu proc gcc典型问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: