黑马程序员技术交流社区

标题: *******答题活动,摆明了是送分的(已结束)******* [打印本页]

作者: 神之梦    时间: 2013-8-11 18:00
标题: *******答题活动,摆明了是送分的(已结束)*******
本帖最后由 神之梦 于 2013-8-12 23:51 编辑


                                            

                                  活动结束,有神马问题请联系楼主,欢迎下次再来!
                                          



说明:
      1、题目很简单,作为还在奋斗进云舞而少点分的童鞋一点点助攻。
      2、分不多,就一分,嫌少的就不要回复了!
      3、活动开启后24小时内回复有效。
      4、回复后两小时内答题有效!

提醒:
      大部分童鞋的答案都是正确的,不过有个别童鞋的答案可能有误,如果错了就没分咯。


题目:
        百钱百鸡问题。
        用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。

要求:
       1、直接回复本帖作答,题目须自己做出。
       2、代码放在编辑菜单的这个"<>"里面。
       3、可将结果一并贴出,只要你代码不复杂的话。







作者: sergio    时间: 2013-8-11 18:05
凑热闹来的
作者: woaiheima    时间: 2013-8-11 18:07
神马情况?????????????
作者: 牛海亮    时间: 2013-8-11 18:17
开始做题~
作者: yangchao313    时间: 2013-8-11 18:52
板凳        
作者: 狐灵    时间: 2013-8-11 18:56
谢谢楼主,看看什么情况~
作者: lengmianluocha    时间: 2013-8-11 18:56
本帖最后由 lengmianluocha 于 2013-8-11 20:06 编辑
  1. public class practice {

  2.         public static void main(String[] args) {
  3.         //cook hen chicks
  4.                 int count  = 0;//计数,统计共有几种方式
  5.                 int  chicks = 0;//计数,统计雏鸡的个数
  6.      for(int cook = 1;cook<20;cook++)
  7.      {
  8.              for(int hen = 1;hen<33;hen++)
  9.              {
  10.                      
  11.                               chicks = 100 - cook - hen;//总数是100只
  12.                              if(15*cook+9*hen+chicks ==300)//价钱满足此等式
  13.                              {
  14.                                      System.out.println("cook:"+cook+"只      "+"hen:"+hen+"只      "+"chicks:"+chicks+"只");
  15.                                      count++;
  16.                              }
  17.                      
  18.              }
  19.      }
  20.      System.out.println("共计"+count+"种买法");
  21.         }

  22. }
复制代码

作者: lvjayj    时间: 2013-8-11 19:06
答题喽啊
作者: yangchao313    时间: 2013-8-11 19:10

  1. <P> class Ji {
  2. public static void main(String[] args) {
  3.   int x,y,z;
  4.   for (x = 1; x < 20; x++)
  5.   {
  6.    for (y = 1; y < 33; y++)
  7.    {
  8.     for (z = 3; z < 99; z+=3)
  9.     {
  10.      if(x + y + z== 100 && (x * 5 + y * 3 + z / 3) == 100)
  11.      {
  12.       System.out.println("公鸡:"+x+",母鸡:"+y+",鸡仔:"+z);
  13.      }
  14.     }
  15.    }
  16.   }
  17. }
  18. }</P>
复制代码

QQ图片20130811191025.jpg (9.53 KB, 下载次数: 44)

结果

结果

作者: panda@uu90    时间: 2013-8-11 19:17
签到,想 参与答题,学习吗,本来刚学,难的也不会啊,另外希望以后你可以在经常找一些基础知识来考,正愁找不到题做,联系,谢谢
作者: lvjayj    时间: 2013-8-11 19:28
本帖最后由 lvjayj 于 2013-8-11 19:35 编辑
  1. public class test {
  2.         public static void main(String[] args) {
  3.                 //遍历所有情况,把符合条件的输出
  4.                 int i,j,k;
  5.                  int count=0;
  6.                   for(i=1;i<=20;i++)//最多买20只公鸡
  7.                    {
  8.                      for(j=1;j<=33;j++)//最多可买33只母鸡
  9.                        {
  10.                              k=100-i-j;//可买的雏鸡
  11.                          if((5*i+3*j+k/3.0==100)&&(i+j+k==100))//共100钱,100只鸡,鸡必须是整的,所以运算不能舍了小数
  12.                          {
  13.                             System.out.println("公鸡:"+i+" 母鸡:"+j+" 雏鸡:"+k);
  14.                             count++;
  15.                           }
  16.                        }
  17.                     }
  18.                    System.out.println("共有买法:"+count);
  19.         }
  20. }
复制代码
公鸡:4 母鸡:18 雏鸡:78
公鸡:8 母鸡:11 雏鸡:81
公鸡:12 母鸡:4 雏鸡:84
共有买法:3

作者: 狐灵    时间: 2013-8-11 19:33
本帖最后由 狐灵 于 2013-8-11 19:36 编辑

小程序代码如下:
  1. package com.bbs;

  2. /**
  3. * 百钱百鸡问题。
  4. * 用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  5. *
  6. *分析:
  7. *    公鸡、母鸡、雏鸡的只数分别为x,y,z,给100钱买100只鸡,如果全买公鸡最多买能20只,根据题的要求,公鸡只数x的值在1~18之间;
  8. *    同理,母鸡只数y的值在1~31之间,同时雏鸡只数Z的值必须是3的整数倍。三个未知数,知道两个的范围了,可得一个不定方程,解此不定方程即可得出鸡的买法。
  9. *    x + y + z = 100        ①
  10. *    5*x + 3*y + z/3 = 100  ②
  11. */

  12. class BuyChicken {
  13.         /** 公鸡只数 */
  14.         public int x;
  15.         
  16.         /** 母鸡只数 */
  17.         public int y;

  18.         /** 雏鸡只数 */
  19.         public int z;

  20.         /** 计算三种鸡的只数 */
  21.         public void compute(int money, int chickenNum) {
  22.                 for(x=1; x <= 18; x++) {
  23.                         for(y = 1; y <= 31; y++) {
  24.                                 z = chickenNum - x - y;
  25.                                 if(z%3==0 && 5*x + 3*y + z/3 == money) {
  26.                                         System.out.println("公鸡 " + x + "只, 母鸡" + y + "只, 雏鸡"+ z + "只");
  27.                                 }
  28.                         }
  29.                 }
  30.         }
  31.         
  32. }

  33. public class ChickenTest {
  34.         public static void main(String[] args) {
  35.                 int money = 100;
  36.                 int chickenNum = 100;
  37.                 BuyChicken buyChicken = new BuyChicken();
  38.                 buyChicken.compute(money, chickenNum);
  39.         }

  40. }
复制代码
鸡的买法:
公鸡 4只, 母鸡18只, 雏鸡78
公鸡 8只, 母鸡11只, 雏鸡81
公鸡 12只, 母鸡4只, 雏鸡84



作者: 黄兴旺    时间: 2013-8-11 19:34
哇卡卡...
作者: yan    时间: 2013-8-11 19:40
本帖最后由 yan 于 2013-8-11 20:22 编辑

好了
  1. class Demo
  2. {
  3.    public static void main(String args[])
  4.       {
  5.        for (int i=1;i<20;i++)//定义公鸡保证有一只
  6.             for(int j=1;j<33;j++)//定义母鸡,保证有一只
  7.                 {
  8.                  int k;
  9.                  k=100-i-j;
  10.                  if (k%3==0)
  11.                  if (5*i+3*j+k/3==100)
  12.                     System.out.println("公鸡="+i+"母鸡="+j+"小鸡="+k);
  13.                 }
  14.          }
  15.    }
复制代码

作者: 木偶_freedom    时间: 2013-8-11 19:42
啊哈 抢楼咯
作者: 木偶_freedom    时间: 2013-8-11 19:57
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int a=1; a<20; a++)                //利用穷举分
  6.                 {
  7.                         for(int b=1; b<32; b++)
  8.                         {
  9.                                 for(int c=1; c<93; c++)
  10.                                 {
  11.                                         if((5*a+3*b+c)==100)                // 判断并打印相应的数量
  12.                                         {
  13.                                                 System.out.println("----------------------------" );
  14.                                                 System.out.println("公鸡个数为:" + a );
  15.                                                 System.out.println("母鸡个数为:" + b );
  16.                                                 System.out.println("雏鸡个数为:" + c*3 );
  17.                                                 System.out.println("----------------------------" );
  18.                                         }
  19.                                 }
  20.                         }
  21.                 }
  22.         }
  23. }
复制代码

作者: 浪无痕-陈文坤    时间: 2013-8-11 20:12
顶顶顶,楼主谢谢!!!
作者: 黄兴旺    时间: 2013-8-11 20:28
本帖最后由 黄兴旺 于 2013-8-11 20:29 编辑

小手一抖...积分到手...
public class Test
{
        public static void main(String[] args)
        {
                int g,m,c,count=0;
                for(g=1;g<20;g++)
                for(m=1;m<33;m++)
                for(c=1;c<99;c++)
                {
                        if(c%3==0&&c==100-g-m&&c==3*(100-5*g-3*m))
                        {       
                                System.out.println(("公鸡为:"+g+"\t"+"母鸡为:"+m+"\t"+"雏鸡为:"+c));
                                count++;       
                        }       
                }
                System.out.println("一共有"+count+"种买法");
        }
}

1.png (3.87 KB, 下载次数: 61)

1.png

作者: 付建超    时间: 2013-8-11 20:33
看看。。
作者: chslzj    时间: 2013-8-11 20:41
哈哈,看看
作者: 小五555    时间: 2013-8-11 20:42
少分的同学伤不起啊。。。。看题目
作者: 肥猫    时间: 2013-8-11 20:45
我来瞅一瞅。
作者: 浪无痕-陈文坤    时间: 2013-8-11 20:45
本帖最后由 浪无痕-陈文坤 于 2013-8-11 20:47 编辑
  1. /*
  2. 用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,
  3. 编程计算共有几种买法(要求每种鸡至少要买1只)。
  4. */

  5. class BuyDemo
  6. {
  7.         public static void main(String[] args)
  8.        {
  9.                 System.out.println(fun(100));
  10.                
  11.         }
  12.         public static int fun(int sum)
  13.         {
  14.                 int count = 0;
  15.                 for(int x = 1; x < 20  ; x++)
  16.                         for(int y = 1; y < 33 ; y++)
  17.                                 for(int z = 1; z < 100 ; z++)
  18.                                 {        
  19.                                         if((x+y+z)== 100 &&(3*sum == (x*15+y*9+z)))
  20.                                         {
  21.                                                 count++;
  22.                                                 System.out.println("x=" + x +", y=" + y + ", z=" + z);
  23.                                         }
  24.                                         continue;
  25.                                 }
  26.                 return count;
  27.         }
  28. }
  29. /*
  30. x=4, y=18, z=78
  31. x=8, y=11, z=81
  32. x=12, y=4, z=84
  33. 3
  34. */
复制代码

作者: 牛海亮    时间: 2013-8-11 20:54
  1. public class BuyChicken {
  2.         /**
  3.          * 用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,
  4.          * 编程计算共有几种买法(要求每种鸡至少要买1只)
  5.          * 思路:定义变量 x y z分别代表公鸡数,母鸡数和,小鸡数
  6.          * 由题目可知变量的大致范围为:0<x<20  0<y<33  
  7.          * 切满足方程:
  8.          * 5x+3y+z/3=100 x+y+z=100
  9.          * 答案为:
  10.          * 公鸡,母鸡,小鸡:12,4,84
  11.      * 公鸡,母鸡,小鸡:8,11,81
  12.      * 公鸡,母鸡,小鸡:4,18,78           
  13.          * @param args
  14.          */
  15.         public static void main(String[] args)
  16.         {                       
  17.                 for(int j = 1;j<33;j++)//母鸡书小于33只
  18.                 {                                       
  19.                         for(int i = 1;i<20;i++)//公鸡数小于20只
  20.                         {
  21.                                 if((100-i-j)%3 == 0&& (5*i+j*3+(100-i-j)/3 == 100))//当公鸡和母鸡的数目满足该方程时,就是要找的买鸡方案之一,输出即可
  22.                                 {
  23.                                         System.out.println("公鸡,母鸡,小鸡:"+i+","+j+","+(100-i-j));
  24.                                 }
  25.                         }                               
  26.                 }                                               
  27.         }

  28. }
复制代码

作者: chslzj    时间: 2013-8-11 21:08
问题有点抽象了
  1. /**
  2. * 2013-8-11下午8:44:41
  3. * Test1.java
  4. * Administrator
  5. */

  6. /**
  7. * @author Administrator
  8. * @time 2013-8-11下午8:44:41
  9. */
  10. public class Test1 {
  11.         static int gongji=1;
  12.         static int muji=1;
  13.         static int chuji=1;
  14.         public static void main(String[] args) {
  15.                 int count=0;
  16.                 int count1=0;
  17.                 //因为每次循环,母鸡要重置为1,
  18.                 for(;moneyCOsted()<=100;gongji++,muji=1)
  19.                         for(muji=1;moneyCOsted()<=100;muji++,chuji=1)
  20.                                 for(chuji=1;moneyCOsted()<=100;chuji++){
  21.                                         count++;
  22.                                         if(moneyCOsted()==100){
  23.                                                 count1++;
  24.                                         }
  25.                                 }
  26.                 System.out.println("包含未花完钱的购鸡计划 :"+count);
  27.                 System.out.println("只包含花完钱的购鸡计划 :"+count1);
  28.                
  29.         }
  30.         private static int moneyCOsted(){
  31.                 return gongji*5+muji*3+chuji;
  32.         }
  33.        
  34. }
复制代码
结果是:
包含未花完钱的购鸡计划 :9821
只包含花完钱的购鸡计划 :304
作者: 乔小北    时间: 2013-8-11 21:11
我也来参与一下
作者: 小五555    时间: 2013-8-11 21:12
  1. package Text.cn;

  2. /**
  3. * @author mmt
  4. *百钱百鸡问题。
  5.         用100钱买100只鸡,公鸡一只五钱,
  6.         母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  7. */
  8. public class Text3 {

  9.         /**
  10.          * @param args
  11.          */
  12.         public static void main(String[] args) {
  13.                 // TODO Auto-generated method stub
  14.                 for (int x = 1; x < 98; x++) {
  15.                         for (int y = 1; y < 100 - x -1; y++) {
  16.                                 int z = 100 - x - y;
  17.                                 if (5*x + 3*y + z/3 <= 100 ) {
  18.                                         System.out.println("公鸡="+ x + "母鸡 =" + y + "雏鸡 =" + z);
  19.                                 }
  20.                         }
  21.                 }

  22.         }

  23. }
复制代码
公鸡=1母鸡 =1雏鸡 =98
公鸡=1母鸡 =2雏鸡 =97
公鸡=1母鸡 =3雏鸡 =96
公鸡=1母鸡 =4雏鸡 =95
公鸡=1母鸡 =5雏鸡 =94
公鸡=1母鸡 =6雏鸡 =93
公鸡=1母鸡 =7雏鸡 =92
公鸡=1母鸡 =8雏鸡 =91
公鸡=1母鸡 =9雏鸡 =90
公鸡=1母鸡 =10雏鸡 =89
公鸡=1母鸡 =11雏鸡 =88
公鸡=1母鸡 =12雏鸡 =87
公鸡=1母鸡 =13雏鸡 =86
公鸡=1母鸡 =14雏鸡 =85
公鸡=1母鸡 =15雏鸡 =84
公鸡=1母鸡 =16雏鸡 =83
公鸡=1母鸡 =17雏鸡 =82
公鸡=1母鸡 =18雏鸡 =81
公鸡=1母鸡 =19雏鸡 =80
公鸡=1母鸡 =20雏鸡 =79
公鸡=1母鸡 =21雏鸡 =78
公鸡=1母鸡 =22雏鸡 =77
公鸡=1母鸡 =23雏鸡 =76
公鸡=2母鸡 =1雏鸡 =97
公鸡=2母鸡 =2雏鸡 =96
公鸡=2母鸡 =3雏鸡 =95
公鸡=2母鸡 =4雏鸡 =94
公鸡=2母鸡 =5雏鸡 =93
公鸡=2母鸡 =6雏鸡 =92
公鸡=2母鸡 =7雏鸡 =91
公鸡=2母鸡 =8雏鸡 =90
公鸡=2母鸡 =9雏鸡 =89
公鸡=2母鸡 =10雏鸡 =88
公鸡=2母鸡 =11雏鸡 =87
公鸡=2母鸡 =12雏鸡 =86
公鸡=2母鸡 =13雏鸡 =85
公鸡=2母鸡 =14雏鸡 =84
公鸡=2母鸡 =15雏鸡 =83
公鸡=2母鸡 =16雏鸡 =82
公鸡=2母鸡 =17雏鸡 =81
公鸡=2母鸡 =18雏鸡 =80
公鸡=2母鸡 =19雏鸡 =79
公鸡=2母鸡 =20雏鸡 =78
公鸡=2母鸡 =21雏鸡 =77
公鸡=3母鸡 =1雏鸡 =96
公鸡=3母鸡 =2雏鸡 =95
公鸡=3母鸡 =3雏鸡 =94
公鸡=3母鸡 =4雏鸡 =93
公鸡=3母鸡 =5雏鸡 =92
公鸡=3母鸡 =6雏鸡 =91
公鸡=3母鸡 =7雏鸡 =90
公鸡=3母鸡 =8雏鸡 =89
公鸡=3母鸡 =9雏鸡 =88
公鸡=3母鸡 =10雏鸡 =87
公鸡=3母鸡 =11雏鸡 =86
公鸡=3母鸡 =12雏鸡 =85
公鸡=3母鸡 =13雏鸡 =84
公鸡=3母鸡 =14雏鸡 =83
公鸡=3母鸡 =15雏鸡 =82
公鸡=3母鸡 =16雏鸡 =81
公鸡=3母鸡 =17雏鸡 =80
公鸡=3母鸡 =18雏鸡 =79
公鸡=3母鸡 =19雏鸡 =78
公鸡=3母鸡 =20雏鸡 =77
公鸡=4母鸡 =1雏鸡 =95
公鸡=4母鸡 =2雏鸡 =94
公鸡=4母鸡 =3雏鸡 =93
公鸡=4母鸡 =4雏鸡 =92
公鸡=4母鸡 =5雏鸡 =91
公鸡=4母鸡 =6雏鸡 =90
公鸡=4母鸡 =7雏鸡 =89
公鸡=4母鸡 =8雏鸡 =88
公鸡=4母鸡 =9雏鸡 =87
公鸡=4母鸡 =10雏鸡 =86
公鸡=4母鸡 =11雏鸡 =85
公鸡=4母鸡 =12雏鸡 =84
公鸡=4母鸡 =13雏鸡 =83
公鸡=4母鸡 =14雏鸡 =82
公鸡=4母鸡 =15雏鸡 =81
公鸡=4母鸡 =16雏鸡 =80
公鸡=4母鸡 =17雏鸡 =79
公鸡=4母鸡 =18雏鸡 =78
公鸡=5母鸡 =1雏鸡 =94
公鸡=5母鸡 =2雏鸡 =93
公鸡=5母鸡 =3雏鸡 =92
公鸡=5母鸡 =4雏鸡 =91
公鸡=5母鸡 =5雏鸡 =90
公鸡=5母鸡 =6雏鸡 =89
公鸡=5母鸡 =7雏鸡 =88
公鸡=5母鸡 =8雏鸡 =87
公鸡=5母鸡 =9雏鸡 =86
公鸡=5母鸡 =10雏鸡 =85
公鸡=5母鸡 =11雏鸡 =84
公鸡=5母鸡 =12雏鸡 =83
公鸡=5母鸡 =13雏鸡 =82
公鸡=5母鸡 =14雏鸡 =81
公鸡=5母鸡 =15雏鸡 =80
公鸡=5母鸡 =16雏鸡 =79
公鸡=6母鸡 =1雏鸡 =93
公鸡=6母鸡 =2雏鸡 =92
公鸡=6母鸡 =3雏鸡 =91
公鸡=6母鸡 =4雏鸡 =90
公鸡=6母鸡 =5雏鸡 =89
公鸡=6母鸡 =6雏鸡 =88
公鸡=6母鸡 =7雏鸡 =87
公鸡=6母鸡 =8雏鸡 =86
公鸡=6母鸡 =9雏鸡 =85
公鸡=6母鸡 =10雏鸡 =84
公鸡=6母鸡 =11雏鸡 =83
公鸡=6母鸡 =12雏鸡 =82
公鸡=6母鸡 =13雏鸡 =81
公鸡=6母鸡 =14雏鸡 =80
公鸡=7母鸡 =1雏鸡 =92
公鸡=7母鸡 =2雏鸡 =91
公鸡=7母鸡 =3雏鸡 =90
公鸡=7母鸡 =4雏鸡 =89
公鸡=7母鸡 =5雏鸡 =88
公鸡=7母鸡 =6雏鸡 =87
公鸡=7母鸡 =7雏鸡 =86
公鸡=7母鸡 =8雏鸡 =85
公鸡=7母鸡 =9雏鸡 =84
公鸡=7母鸡 =10雏鸡 =83
公鸡=7母鸡 =11雏鸡 =82
公鸡=7母鸡 =12雏鸡 =81
公鸡=7母鸡 =13雏鸡 =80
公鸡=8母鸡 =1雏鸡 =91
公鸡=8母鸡 =2雏鸡 =90
公鸡=8母鸡 =3雏鸡 =89
公鸡=8母鸡 =4雏鸡 =88
公鸡=8母鸡 =5雏鸡 =87
公鸡=8母鸡 =6雏鸡 =86
公鸡=8母鸡 =7雏鸡 =85
公鸡=8母鸡 =8雏鸡 =84
公鸡=8母鸡 =9雏鸡 =83
公鸡=8母鸡 =10雏鸡 =82
公鸡=8母鸡 =11雏鸡 =81
公鸡=9母鸡 =1雏鸡 =90
公鸡=9母鸡 =2雏鸡 =89
公鸡=9母鸡 =3雏鸡 =88
公鸡=9母鸡 =4雏鸡 =87
公鸡=9母鸡 =5雏鸡 =86
公鸡=9母鸡 =6雏鸡 =85
公鸡=9母鸡 =7雏鸡 =84
公鸡=9母鸡 =8雏鸡 =83
公鸡=9母鸡 =9雏鸡 =82
公鸡=10母鸡 =1雏鸡 =89
公鸡=10母鸡 =2雏鸡 =88
公鸡=10母鸡 =3雏鸡 =87
公鸡=10母鸡 =4雏鸡 =86
公鸡=10母鸡 =5雏鸡 =85
公鸡=10母鸡 =6雏鸡 =84
公鸡=10母鸡 =7雏鸡 =83
公鸡=11母鸡 =1雏鸡 =88
公鸡=11母鸡 =2雏鸡 =87
公鸡=11母鸡 =3雏鸡 =86
公鸡=11母鸡 =4雏鸡 =85
公鸡=11母鸡 =5雏鸡 =84
公鸡=11母鸡 =6雏鸡 =83
公鸡=12母鸡 =1雏鸡 =87
公鸡=12母鸡 =2雏鸡 =86
公鸡=12母鸡 =3雏鸡 =85
公鸡=12母鸡 =4雏鸡 =84
公鸡=13母鸡 =1雏鸡 =86
公鸡=13母鸡 =2雏鸡 =85
作者: liguangcaiup    时间: 2013-8-11 21:22
看看哈 答题的技术分
作者: 黑马王晓明    时间: 2013-8-11 21:25
:)                              
作者: 于小皓    时间: 2013-8-11 21:36
回复才能看题啊
作者: 牛牛    时间: 2013-8-11 21:42
看看~~~~~~~~
作者: 于小皓    时间: 2013-8-11 21:51
  1. package it.cast.demo1;

  2. /**
  3. * 百钱百鸡问题。
  4.         用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。       
  5. * @author 无节操
  6. *
  7. */
  8. public class test {

  9.         public static void main(String args[]) {
  10.                 // 5x+3y+z/3=100       x+y+z=100
  11.                 //公鸡个数
  12.                 for (int x = 1; x < 20; x++) {
  13.                         //母鸡个数
  14.                         for (int y = 1; y < 34; y++) {
  15.                                 //小鸡个数
  16.                                 for (int z = 0; z < 100; z += 3) {
  17.                                         //根据题目进行条件判断
  18.                                         if((5 * x + 3 * y + z / 3 == 100) && (x + y + z == 100)) {
  19.                                                 //将结果输出
  20.                                                 System.out.println("公鸡" + x + "只" + "母鸡" +y + "只" + "雏鸡" + z + "只");
  21.                                         }
  22.                                 }
  23.                         }
  24.                 }
  25.         }
  26. }
复制代码

作者: jrry    时间: 2013-8-11 22:03
一分也是分
作者: liguangcaiup    时间: 2013-8-11 22:10
以前做过换硬币的

  1. public class lianxi {

  2.         public static void main(String[] args) {
  3.                 int n = 0;
  4.                 int i, j, k = 0;
  5.                 for (i = 1; i <= 20; i++)
  6.                         for (j = 1; j <= 33; j++) {
  7.                                 k = 100 - i - j;
  8.                                 if ((k % 3) == 0 && (5 * i + 3 * j + k / 3) == 100)
  9.                                         n++;
  10.                         }
  11.                 System.out.println(n);
  12.         }
复制代码

作者: 乔小北    时间: 2013-8-11 22:14
  1. public class Chicken {
  2.         public static void main(String[] args) {
  3.                 int count=0;//计数器1
  4.                 int count1=0;//计数器2
  5.                 int i=1;//公鸡
  6.                 int j=1;//母鸡
  7.                 int r=1;//雏鸡
  8.                 //因为每次循环,母鸡要重置为1,
  9.                 for(;i*5+j*3+r<=100;i++,j=1)//重置母鸡
  10.                         for(j=1;i*5+j*3+r<=100;j++,r=1)//重置雏鸡
  11.                                 for(r=1;i*5+j*3+r<=100;r++){
  12.                                         count++;
  13.                                         if(i*5+j*3+r==100){
  14.                                                 count1++;
  15.                                         }
  16.                                 }
  17.                 System.out.println("没有花完钱的计数 :"+count);
  18.                 System.out.println("花完钱的计数 :"+count1);
  19.                
  20.         }
  21.        
  22. }
复制代码

作者: mulua    时间: 2013-8-11 22:20
24   加油         
作者: panda@uu90    时间: 2013-8-11 22:39
/**思想:1:明确结果:只知道我有100元,要买100只鸡,于是:5a+3b+1/3c=100元,a+b+c=100只。所以:{100元-(5a+3b)}*3(除以1/3=买雏鸡的只数)+a+b=100只。int类型,for循环和if语句,打印循环次数total。

      2:明确未知内容:此题有3个变量,公鸡a,母鸡b,雏鸡c.共有几种买法,也不知道。设为total。*/

public class Chicken
{
        public static void main(String[] args)
        {
                int total = 0;
                for(int a = 0;a<=33;a++)
                {
                        for(int b = 0;b<=20;b++)
                        {
                                for(int c = 0;c<=100;c+=3)
                                {
                                        total++;
                                        if(a*3 + b*5 + c/3 == 100 && a + b + c == 100)
                                        {
                                                System.out.println("==========");
                                                System.out.println("公鸡" + a);
                                                System.out.println("母鸡" + b);
                                                System.out.println("小鸡" + c);
                                        }
                                }
                        }
                }
                System.out.println("total = " + total);
        }
}

作者: 牛牛    时间: 2013-8-11 22:46
  1. /**
  2. * 题目:
  3.         百钱百鸡问题。
  4.         用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。

  5. 要求:
  6.        1、直接回复本帖作答,题目须自己做出。
  7.        2、代码放在编辑菜单的这个"<>"里面。
  8.        3、可将结果一并贴出,只要你代码不复杂的话。
  9. *
  10. *思路:1:重点    100钱买 100只鸡       公鸡:五钱 /只       母鸡:三钱 /只     雏鸡:一钱/三只
  11. *               
  12. */
  13. public class Exercise_6 {
  14.         
  15.         public static void main(String[] args) {
  16.                 int money = 100;//  100钱
  17.                 int totalFowl = 100;//100只鸡
  18.                 int count = 0;//组合次数
  19. //                cock一只公鸡  五钱 /只
  20. //                hen一只 母鸡  三钱 /只
  21. //                chick三只 雏鸡 一钱/三只
  22.                 for(int cock = 1;cock<=totalFowl/5;cock++){
  23.                         for(int hen = 1;hen<=totalFowl/3;hen++){
  24.                                 int chick = totalFowl -cock-hen;
  25.                                 //只有雏鸡只数是3的倍数钱才是整数所以先判断chick%3==0再判断100只鸡的钱为100
  26.                                 if(chick%3==0&&5*cock+3*hen+chick/3==money){
  27.                                         System.out.println("公鸡:"+cock+"只,母鸡:"+hen+"只,雏鸡:"+chick+"只");
  28.                                         count++;
  29.                                 }
  30.                         }
  31.                 }
  32.                 System.out.println("答:编程计算共有"+count+"种买法");
  33.         }
  34. }
复制代码


作者: jrry    时间: 2013-8-11 23:16
  1. /**
  2. * 百钱百鸡问题。  用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  3. * 思路:因为每种鸡至少买一只,那么我们先假设只买1只公鸡,买1只母鸡, 这样的话还有98只鸡没买,还剩100 - 1*5 - 1*3 = 92钱,因为1钱可以买3只雏鸡,92*3!=98,所以这种买法不可行。
  4. * 如果买两只公鸡的话就需要2*5钱,买2只母鸡的话就需要2*3钱,依次推算可得出算法
  5. * @author jerry
  6. *
  7. */
  8. public class BuyChicken {
  9.         public static void main(String[] args) {
  10.                 //有count种买法
  11.                 int count = 0;
  12.                 //x为买公鸡所花的钱,从第一次买1只公鸡,花了5钱开始循环遍历,每种鸡至少买一只,这样买公鸡最多只能花96钱,
  13.                 for (int x = 5;x <= 96;x ++)
  14.                 {
  15.                         //x需要被5整除
  16.                         if (x % 5 == 0)
  17.                         {
  18.                                 //y为买母鸡所花的钱,从第一次买1只母鸡,花了3钱开始循环遍历,每种鸡至少买一只,这样买公鸡最多只能花94钱,
  19.                                 for (int y = 3;y <= 94;y ++)
  20.                                 {
  21.                                         //y需要被3整除
  22.                                         if (y % 3 == 0)
  23.                                         {
  24.                                                 //买完公鸡母鸡还剩这么i钱
  25.                                                 int i = 100 - x - y;
  26.                                                 //买完公鸡母鸡还有这么j只鸡没买
  27.                                                 int j = 100 - x/5 - y/3;
  28.                                                 //如果i * 3为j只鸡的数量,则此方法可行
  29.                                                 if (i * 3 == j) {
  30.                                                         System.out.println("公鸡数:" + x/5 + "," + "母鸡数:" + y/3 + "," +"雏鸡数:" + "," + j);
  31.                                                         count ++;
  32.                                                 }
  33.                                         }
  34.                                 }
  35.                         }
  36.                 }
  37.                 System.out.println("所以有" + count + "种买法");
  38.         }
  39. }
复制代码

作者: ☆今☆    时间: 2013-8-11 23:52
呵呵。。。。。。。。。
作者: penpen    时间: 2013-8-12 00:03
来看看自己能拿分不。
作者: ☆今☆    时间: 2013-8-12 00:08
  1. class  Test{
  2.         public static void main(String[] args) {
  3.                 int count=0;
  4.          for (int i = 1; i <= (100/5); i++ ) {
  5.                                 for (int j = 1; j <= (100/3) ;j++ ) {
  6.                                         for (int k = 3; k <= 100;k+=3 ) {
  7.                                                 if((3*i+5*j+(k/3))==100 && (i+j+k)==100)
  8.                                                         count++;
  9.                                 }
  10.                                 }               
  11.                  }
  12.                  System.out.println(count);
  13.         }
  14. }
复制代码
答案是3
作者: penpen    时间: 2013-8-12 00:21
本帖最后由 penpen 于 2013-8-13 00:39 编辑
  1. int x,y,z,j=0;  
  2.                 System.out.printf("Folleing are possible plans to buy 100 fowls with 100 Yuan.\n");
  3.                 for(x=0;x<=20;x++) /*外层循环控制鸡翁数*/  
  4.                 {        
  5.                         for(y=0;y<=33;y++) /*内层循环控制鸡母数y在0~33变化*/
  6.                         {
  7.                                 z=100-x-y; /*内外层循环控制下,鸡雏数z的值受x,y的值的制约*/
  8.                                 if(z%3==0&&5*x+3*y+z/3==100)  /*验证取z值的合理性及得到一组解的合理性*/
  9.                                         System.out.printf("%2d:cock=%2d hen=%2d chicken=%2d\n",++j,x,y,z);
  10.                         }
  11.                 }               
复制代码
失败啊55555
作者: 封号了...    时间: 2013-8-12 00:24
亮题,加分
作者: 封号了...    时间: 2013-8-12 00:35
标题: 20
本帖最后由 封号了... 于 2013-8-12 00:39 编辑
  1.         public static int getNumber() {
  2.                 int count = 0;
  3.                 for (int i = 1; i < 93; i++) {
  4.                         for (int j = 1; j < 32; j++) {
  5.                                 for (int j2 = 1; j2 < 20; j2++) {
  6.                                         if ((i * 1 + j * 3 + j2 * 5) == 100) {
  7.                                                 count++;
  8.                                         }
  9.                                 }
  10.                         }
  11.                 }
  12.                 return count;
  13.         }
复制代码
304

作者: 苏联兵    时间: 2013-8-12 00:46
去瞧瞧,碰碰运气!
作者: 赵国刚    时间: 2013-8-12 07:29
答题,请开锁,呵呵
作者: 赵国刚    时间: 2013-8-12 07:49
<public class Test1 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                int x,y,z=1;
                for(x=1,x<=20;x++){
                        for(y=1,y<=33;y++){
                                z=100-x-y;
                                if(z%3==0&&5*x+3*y+z/3==100){
                                        System.out.println("公鸡数="+x);
                                        System.out.println("母鸡数="+y);
                                        System.out.println("雏鸡数="+z);
                                }
                        }
                        }
                }

}>
公鸡=4 母鸡=18 雏鸡=78
公鸡=8 母鸡n=11 雏鸡=81
公鸡=12 母鸡=4 雏鸡=84

作者: 曾文德    时间: 2013-8-12 08:18
题目要回复才能看。
作者: 曾文德    时间: 2013-8-12 08:39
  1. Private Sub Form_Click()
  2. Dim i%, j%, k%, n%
  3. n = 0
  4. For i = 1 To 100
  5.   For j = 1 To 100
  6.     For k = 1 To 100
  7.     If 5 * i + 3 * j + k / 3 = 100 And i + j + k = 100 Then
  8.                 n = n + 1
  9.      End If
  10.      Next k
  11.    Next j
  12. Next i
  13. Print n
  14. End Sub
复制代码

作者: 肥猪    时间: 2013-8-12 09:58
嘿嘿 又来了
作者: 肥猪    时间: 2013-8-12 11:18
  1. /*
  2.   题目:
  3.         百钱百鸡问题。
  4.         用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  5. */
  6. public class Chicken {
  7.         public static void main(String[] args) {
  8.                 BuyChicken();
  9.         }
  10.        
  11.         public static void BuyChicken()
  12.         {
  13.                 int chick =0;//小鸡
  14.                 int sum = 0;//购买方案
  15.                
  16.                 for(int cock =1;cock<20;cock++) //外部循环 控制公鸡数量,因为只有100钱所以公鸡最多19只
  17.                 {
  18.                         for(int hen = 1;hen<33;hen++)//内部循环控制母鸡数量
  19.                         {
  20.                                 chick = 100-cock-hen;//小鸡数量
  21.                                 if(chick%3==0 && cock*5+hen*3+chick/3==100)//判断是否满足条件
  22.                                 {
  23.                                         sum=sum+1;
  24.                                         System.out.println("公鸡:"+cock+"只   母鸡"+hen+"只   小鸡"+chick+"只");
  25.                                 }
  26.                         }
  27.                 }
  28.                 System.out.println("一共有"+sum+"种购买方案");
  29.         }
  30.        
  31.         /*
  32.          *打印结果
  33.          *公鸡:4只   母鸡18只   小鸡78只
  34.         公鸡:8只   母鸡11只   小鸡81只
  35.         公鸡:12只   母鸡4只   小鸡84只
  36.         一共有3种购买方案
  37.          */
  38. }

复制代码

作者: 王永贺    时间: 2013-8-12 11:39
本帖最后由 王永贺 于 2013-8-12 12:15 编辑

  1. import org.junit.Test;

  2. public class Demo {
  3. @Test
  4.         public void test() {
  5.                 for (int i = 1; i < 20; i++) {//因为公鸡5钱一只所以不能超过20只
  6.                         for (int j = 1; j < 33; j++) {//同理母鸡也是3钱所以不能超过33只
  7.                                 for (int k = 1; k < 100; k++) {
  8.                 if((i+j+k)==100&&(5*i+3*j+(double)k/3)==100.0)//百元百鸡的判断
  9.                         System.out.println("公鸡:"+i+"母鸡:"+j+"鸡雏:"+k);
  10.                                 }

  11.                         }
  12.                 }
  13.         }

  14. }
复制代码
运行结果:
公鸡:4母鸡:18鸡雏:78
公鸡:8母鸡:11鸡雏:81
公鸡:12母鸡:4鸡雏:84
作者: EYE_SEE_YOU    时间: 2013-8-12 12:54
看题必定拿分
作者: EYE_SEE_YOU    时间: 2013-8-12 13:11

答案是3种,一看网上都有答案
主要运用的还是 遍历  
还有用到枚举或别的各种算法
作者: 曹满林    时间: 2013-8-12 13:55
题目在哪里?
作者: lihaotian_120    时间: 2013-8-12 14:11
看题目……
作者: 以防万一    时间: 2013-8-12 14:13
苗子,我来看看
作者: 曹满林    时间: 2013-8-12 14:24
  1. public static void main(String[] args){
  2.        
  3.         int chicken;  //雏鸡
  4.         System.out.println("百鸡百钱分布发下:");
  5.          //cock:公鸡
  6.         for(int cock=1;cock<99;cock++){ //因为每种鸡至少要买1只,只此公鸡最多可买98只
  7.                 //hen:母鸡
  8.                 for(int hen=1;hen<100-cock;hen++){ //因为每种鸡至少要买1只,只此母鸡最多可买98只
  9.                
  10.                         chicken=100-cock-hen;

  11.                         if(chicken!=0 && chicken % 3 ==0){//如果花100钱,则雏鸡数一定是3的倍数

  12.                                 if(5*cock+3*hen+chicken/3==100){
  13.                                         System.out.println("公鸡的个数:"+cock);
  14.                                         System.out.println("母鸡的个数:"+hen);
  15.                                         System.out.println("雏鸡的个数:"+chicken);
  16.                                         System.out.println("");
  17.                                 }                       
  18.                         }                       
  19.                 }
  20.         }       
  21. }
复制代码
百鸡百钱分布发下:
公鸡的个数:4
母鸡的个数:18
雏鸡的个数:78

公鸡的个数:8
母鸡的个数:11
雏鸡的个数:81

公鸡的个数:12
母鸡的个数:4
雏鸡的个数:84

作者: lihaotian_120    时间: 2013-8-12 14:30
3种
  1. class Test1_c
  2. {
  3.         //用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  4.         public static void main(String[] args)
  5.         {
  6.                 System.out.println(key());
  7.         }
  8.         static int key()
  9.         {
  10.                 int tot=0;//i为公鸡,j为母鸡,k为小鸡,tot记录方法数。
  11.                 for(int i=1;i<20;i++)
  12.                 for(int j=1;j<33;j++)
  13.                 for(int k=3;k<=90;k+=3)
  14.                 {
  15.                         if(i+j+k==100&&i*5+j*3+k/3==100)
  16.                         {
  17.                                 tot++;
  18.                         }
  19.                 }
  20.                 return tot;
  21.         }
  22. }
复制代码

作者: EYE_SEE_YOU    时间: 2013-8-12 14:31
  1. public class  haha
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 double $=91.666666666;
  6.                
  7.                
  8.                
  9.                 for (int x=1;x<20 ;x++,$-=5 )
  10.                 {
  11.                         for (int y=1;y<33 ;y++,$-=3 )
  12.                         {
  13.                                 for (int z=0;z<100 ;z++,$-=0.333333333 )
  14.                                 {
  15.                                         if (x+y+z==100)
  16.                                         {
  17.                                                 if ($>=0.0)
  18.                                                 {
  19.                                                         System.out.println($);
  20.                                                 }
  21.                                                
  22.                                         }
  23.                                 }
  24.                         }
  25.                 }}}
复制代码

作者: 天涯海角    时间: 2013-8-12 15:19
我要参加这次活动
作者: yan    时间: 2013-8-12 20:12
问下版主,我昨天回答问题了,怎么没得到消息,不知道是对还是错,也想赚技术分
作者: 神之梦    时间: 2013-8-12 23:18
chslzj 发表于 2013-8-11 21:08
问题有点抽象了结果是:
包含未花完钱的购鸡计划 :9821
只包含花完钱的购鸡计划 :304 ...

百钱百鸡意思应该就是说花一百块钱买一百只鸡,不存在还留点钱。
另外,哥们你的答案是说有300多种可能?
作者: panda@uu90    时间: 2013-8-13 00:04
panda@uu90 发表于 2013-8-11 22:39
/**思想:1:明确结果:只知道我有100元,要买100只鸡,于是:5a+3b+1/3c=100元,a+b+c=100只。所以:{100元 ...

忘记把答案写出来了。除此你感觉那里还有问题?谢谢指出
作者: panda@uu90    时间: 2013-8-13 00:06
panda@uu90 发表于 2013-8-13 00:04
忘记把答案写出来了。除此你感觉那里还有问题?谢谢指出

主要运用的还是 遍历  
还有用到枚举或别的各种算法,我还没有学到那里,我就不自量力的做,嘿嘿,有点不好意思,出丑了
作者: 神之梦    时间: 2013-8-13 12:15
panda@uu90 发表于 2013-8-13 00:06
主要运用的还是 遍历  
还有用到枚举或别的各种算法,我还没有学到那里,我就不自量力的做,嘿嘿,有点不 ...

基本上只要遍历就哦了
我忘了你结果了,现在没电脑,刚看了下你代码,主要有两点,一是题意说每样必须有一只,你循环是从0开始的。二是你的总计应该放if里面而不是if外面
作者: 曾文德    时间: 2013-8-13 12:34
曾文德 发表于 2013-8-12 08:39

好像没标明用什么语言写把:#
作者: panda@uu90    时间: 2013-8-13 21:07
神之梦 发表于 2013-8-13 12:15
基本上只要遍历就哦了
我忘了你结果了,现在没电脑,刚看了下你代码,主要有两点,一是题意说每样必须有 ...

谢谢指教,下次努力,那代码为什么还是编译失败,可否帮忙找出原因,谢谢。
作者: 神之梦    时间: 2013-8-13 22:56
panda@uu90 发表于 2013-8-13 21:07
谢谢指教,下次努力,那代码为什么还是编译失败,可否帮忙找出原因,谢谢。 ...

你把最后的代码贴出来先
作者: Just_Only    时间: 2013-8-15 12:38
还在延续的啊,加油,来支持了。。。
作者: 小五555    时间: 2013-8-15 13:43
小五555 发表于 2013-8-11 21:12
公鸡=1母鸡 =1雏鸡 =98
公鸡=1母鸡 =2雏鸡 =97
公鸡=1母鸡 =3雏鸡 =96

版主,题目中没有要求一定要完全花掉这100钱啊,我计算过,加起来都是100只鸡,而且也花不到100钱啊,怎么会不对呢?

作者: 小五555    时间: 2013-8-15 13:57
小五555 发表于 2013-8-11 21:12
公鸡=1母鸡 =1雏鸡 =98
公鸡=1母鸡 =2雏鸡 =97
公鸡=1母鸡 =3雏鸡 =96

公鸡=4母鸡 =18雏鸡 =78
公鸡=8母鸡 =11雏鸡 =81
公鸡=12母鸡 =4雏鸡 =84
如果100钱正好花完的话,上述为答案


作者: 小五555    时间: 2013-8-15 13:58
  1. package Text.cn;

  2. /**
  3. * @author mmt
  4. *百钱百鸡问题。
  5.         用100钱买100只鸡,公鸡一只五钱,
  6.         母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
  7. */
  8. public class Text3 {

  9.         /**
  10.          * @param args
  11.          */
  12.         public static void main(String[] args) {
  13.                 // TODO Auto-generated method stub
  14.                 for (int x = 1; x < 98; x++) {
  15.                         for (int y = 1; y < 100 - x -1; y++) {
  16.                                 int z = 100 - x - y;
  17.                                 if (15*x + 9*y + z == 300) {
  18.                                         System.out.println("公鸡="+ x + "母鸡 =" + y + "雏鸡 =" + z);
  19.                                 }
  20.                         }
  21.                 }

  22.         }

  23. }
复制代码
这是修改后的代码




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