黑马程序员技术交流社区

标题: 百钱买白鸡问题 [打印本页]

作者: huangxuanheng    时间: 2014-8-7 22:20
标题: 百钱买白鸡问题
百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少?
作者: 冒牌高手    时间: 2014-8-8 07:44
用三个循环,分别代表3种鸡有多少只,在某个数值会有满足100只满足100个铜钱的条件。
名字是随便起的
  1. class p
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int a=0,b=0,c=0,num=100;
  6.                 for (int i=0;i<=20 ;i++ )//公鸡的数量
  7.                 {
  8.                         for (int j=0;j<=(int)((100-5*i)/3) ;j++ )//母鸡的数量
  9.                         {
  10.                                 for (int z=0;z<= (100-5*i-3*i); z+=3)//小鸡的数量
  11.                                 {
  12.                                         if ((i+j+3*z==100)&&(5*i+3*j+z==100))
  13.                                         {
  14.                                                 System.out.println("公鸡为"+i+"只,母鸡为"+j+"只,小鸡为"+3*z);
  15.                                                 System.out.println("公鸡钱为"+5*i+",母鸡钱为"+3*j+",小鸡钱"+z);
  16.                                         }
  17.                                 }
  18.                         }
  19.                 }
  20.         }
  21. }
复制代码

作者: 李文方    时间: 2014-8-8 08:25
public static void main(String[] args){
                //确定公鸡的数量,5元一只,最多可买20只
                 for(int i=0;i<=20;i++){
                        //确定母鸡的数量,3元一只,最多能买34只
                         for(int j=0;j<34;j++){
                                 //当公鸡和母鸡的数量确定了,小鸡的数量也就确定了
                                 for(int k=0;k<=100-i-j;k++){
                                         //当满足条件时,即100元买100只鸡
                                         if(i+j+k==100 && 5*i+3*j+k/3==100){
                                                         System.out.println("数量:         公鸡:"+i+"  母鸡:"+j+"  小鸡 :"+k+"\n");
                                                 System.out.println("钱    :         公鸡:"+5*i+"  母鸡:"+3*j+"  小鸡 :"+(100-(5*i+3*j))+"\n");
                                         }
                                 }
                         }
                 }
         }
作者: liqi    时间: 2014-8-8 09:41
李文方 发表于 2014-8-8 08:25
public static void main(String[] args){
                //确定公鸡的数量,5元一只,最多可买20只
                 for(int i=0;i ...

二三层有不必要的循环,应该是你楼上那位的
作者: 小小菜鸟007    时间: 2014-8-8 10:01
典型的贪心算法
作者: 周峰峰    时间: 2014-8-8 14:39
学习一下
作者: 周峰峰    时间: 2014-8-8 15:02
本帖最后由 周峰峰 于 2014-8-8 16:31 编辑

public class demo4 {

        /**
         * 百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少?
         * @param args
         */
        public static void main(String[] args) {
                for(int x=1;x<=100;x++){
                        for(int y=1;y<=100;y++){
                                for(int z=1;3*z<=100;z++){
                                        if(x+y+3*z==100&&x*5+y*3+z==100){
                                                System.out.println("公鸡"+x+"只,母鸡"+y+"只,小鸡"+3*z+"只");
                                        }
                                }
                        }
                }
        }

}

作者: huangxuanheng    时间: 2014-8-8 20:39
冒牌高手 发表于 2014-8-8 07:44
用三个循环,分别代表3种鸡有多少只,在某个数值会有满足100只满足100个铜钱的条件。
名字是随便起的
...

非常好的代码
作者: huangxuanheng    时间: 2014-8-8 20:40
李文方 发表于 2014-8-8 08:25
public static void main(String[] args){
                //确定公鸡的数量,5元一只,最多可买20只
                 for(int i=0;i ...

不错,做的不错
作者: huangxuanheng    时间: 2014-8-8 20:44
liqi 发表于 2014-8-8 09:41
二三层有不必要的循环,应该是你楼上那位的

:loveliness:
作者: huangxuanheng    时间: 2014-8-8 20:45
beyondjia 发表于 2014-8-8 14:55
这样的
public static void main(String args[])
   {

做的不错....
作者: huangxuanheng    时间: 2014-8-8 20:47
周峰峰 发表于 2014-8-8 15:02
public class demo4 {

        /**

:loveliness:
作者: 舍我其谁    时间: 2014-8-9 01:20
路过学习了
作者: 黑马黄武先    时间: 2014-8-9 02:38
学习了!!!真牛




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2