A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 神之梦 于 2013-8-12 23:51 编辑


                                            

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



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

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


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

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






93 个回复

倒序浏览
凑热闹来的
回复 使用道具 举报
神马情况?????????????
回复 使用道具 举报
开始做题~
回复 使用道具 举报
板凳        
回复 使用道具 举报
谢谢楼主,看看什么情况~
回复 使用道具 举报
本帖最后由 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
lvjayj 中级黑马 2013-8-11 19:06:03
8#
答题喽啊
回复 使用道具 举报

  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, 下载次数: 43)

结果

结果

点评

如果100钱都用完的话就应该用&了  发表于 2013-8-13 07:20

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
签到,想 参与答题,学习吗,本来刚学,难的也不会啊,另外希望以后你可以在经常找一些基础知识来考,正愁找不到题做,联系,谢谢
回复 使用道具 举报
本帖最后由 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

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 狐灵 于 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


评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 很给力!

查看全部评分

回复 使用道具 举报
哇卡卡...
回复 使用道具 举报
yan 中级黑马 2013-8-11 19:40:59
14#
本帖最后由 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.    }
复制代码

点评

怎么找不到题目  发表于 2013-8-11 20:17

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
啊哈 抢楼咯
回复 使用道具 举报
  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-12 23:12
回复 使用道具 举报
顶顶顶,楼主谢谢!!!
回复 使用道具 举报
本帖最后由 黄兴旺 于 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-12 23:13

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
付建超 来自手机 中级黑马 2013-8-11 20:33:58
19#
看看。。
回复 使用道具 举报
哈哈,看看
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马