某人拿着100块钱去买鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。
要求:正好花完100元,买100只鸡。
问:公鸡该买多少只,母鸡该买多少只,小鸡该买多少只?要求用Java实现,第一要求有没有实现,第二要求算法的优化。认为自己能做来的,或者已经做出来的,或者准备去做的,请加我们的群:
我的工具Java[2] 群号码 34317592
我的工具Java[3] 群号码 2575657
我的工具Java[4] 群号码 38366490 
我的工具Java[5] 群号码 38366664  
我的工具Java[6] 群号码 38366732
我的工具Java[7] 群号码 14061272帮助刚踏上JAVA之路的人,解决各种问题;帮助正在升级中的人,在这里你可以见到一些常见或者不常见的刁难问题,得到学习;帮助自认为是高手的人,并非所有问题你都能解决,或者某一个菜鸟在某个方面比你强;真正的高手喜欢帮助人,在这里你得以发挥。每个人限加一个群,建议按顺序来加,如果已满按次序加下一个。

解决方案 »

  1.   

    总群为JAVA上海群,欢迎各地JAVA爱好者。
      

  2.   

    import java.*; 
    public class baibai 

    public static void main(String args[]) 

    for (int i=1;i<20;i++) 
    for(int j=1;j<33;j++) 

    int k; 
    k=100-i-j; 
    if (k%3==0) 
    if (5*i+3*j+k/3==100) 
    System.out.println("gongji="+i+"muji="+j+"xiaojia="+k); 


    }
      

  3.   

    public class Bai {
    public static void main(String args[]) {
    for (int i = 1; i < 33; i++)
    for (int j = 1; j <20 ; j++) {
    int k;
    k = 100 - i - j;
    if (k % 3 == 0)
    if (5 * j + 3 * i + k / 3 == 100)
    System.out.println("gongji=" + j + "muji=" + i
    + "xiaojia=" + k);
    }
    }
    }
      

  4.   

    x+y+z=100
    5x+3y+z/3=100->
    y+7z/3=200
      

  5.   

    public class ji

    public static void main(String args[]) 

    for (int i=1;i<20;i++) 
    for(int j=1;j<33;j++) 

    int k; 
    k=100-i-j; 
    if (k%3==0) 
    if (5*i+3*j+k/3==100) 
    System.out.println("gongji="+i+"muji="+j+"xiaojia="+k); 


    }
      

  6.   

    public class ji

    public static void main(String args[]) 

    for (int i=1;i<20;i++) 
      for(int j=1;j<33;j++) 
      {   
        int k=(100-i-j)*3; 
        if (k>0&&5*i+3*j+k==100) 
        System.out.println("公鸡="+i+",母鸡="+j+"小鸡="+k); 
      } 

    }
      

  7.   

    某人拿着100块钱去买鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。
    要求:正好花完100元,买100只鸡。
    问:公鸡该买多少只,母鸡该买多少只,小鸡该买多少只?
    =============================================================
    推理一下吧:
    100元:100只 = 1:1
    =>(公+母+小)钱/只 = 1/1 
    =>公:母:小(只) = 3:5:15 (最小公倍数)
    由于(3+5+15)*X = 100(只)该公式不成立 => 公母小三者不能同时存在
    这样我们就三选二:
    (3+5)*X = 100 不成立 => 公和母 不存在
    (3+15)*X = 100 不成立 => 公和小 不存在
    (5+15)*X = 100 X为5时成立 => 母和小 存在
    验证:
    母:5*5=25只 25*3=75元
    小:15*5=75只 75*1/3=25元
    总钱数=100,总只数=100
      

  8.   

    public class ji
    {
    public static void main(String[] args)
    {
    private int cock = 0;
    private int hen = 0;
    private int chicken = 0; for(int icock = 0;icock<=20;icock++)
    {
    for(int ihen=0;ihen<=33;ihen++)
    {
    for(int ichicken = 0;ichicken<=300;ichicken++)
    {
    if(ichicken%3!=0)
    {
    continue;
    }
    if(icock+ihen+ichicken==100&&icock*5+ihen*3+(int)ichicken/3==100)
    {
    cock = icock;
    hen = ihen;
    chicken = ichicken;
    System.out.println("cock="+cock+";hen="+hen+";chicken"+chicken);
    int sum = cock+hen+chicken;
                    System.out.println("sum="+sum); }
    continue;
    }
    } }
    }
    }
      

  9.   

    skystar99047(天星) ( ) 信誉:100    Blog   加为好友  2007-4-7 14:42:10  得分: 0  
     
     
       
    某人拿着100块钱去买鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。
    要求:正好花完100元,买100只鸡。
    问:公鸡该买多少只,母鸡该买多少只,小鸡该买多少只?
    =============================================================
    推理一下吧:
    100元:100只 = 1:1
    =>(公+母+小)钱/只 = 1/1 
    =>公:母:小(只) = 3:5:15 (最小公倍数)  ***-> 请问这是什么逻辑??谁规定每样花的钱一样多啊
    由于(3+5+15)*X = 100(只)该公式不成立 => 公母小三者不能同时存在
    这样我们就三选二:
    (3+5)*X = 100 不成立 => 公和母 不存在
    (3+15)*X = 100 不成立 => 公和小 不存在
    (5+15)*X = 100 X为5时成立 => 母和小 存在
    验证:
    母:5*5=25只 25*3=75元
    小:15*5=75只 75*1/3=25元
    总钱数=100,总只数=100反证:
    <
    公8母11小81
    8+11+81=100
    8*5+11*3+81/3
    =40+33+27
    =100
    >
      
     
      

  10.   

    x+y+z=100
    5x+3y+z/3=100
    ->
    7x+4y=100
    ->
    要同时取整数,易见(0,25)-〉(0,25,75)为一解
    7*4=28
    ->第二解(0+4,25-7)->(4,18,78)
    ->第三解(4+4,18-7)->(8,11,81)
    ->第四解(8+4,11-7)->(12,4,84)
    ->出现负数...
      

  11.   

    public class J100RMB100 {
        public static void main(String[] args) {
            int xiaoJ = 0, muJ, gongJ, i = 1;
            for (gongJ = 0; gongJ <= 20; gongJ++) {
                for (muJ = 0; muJ <= 33; muJ++) {
                    xiaoJ = 100 - gongJ - muJ;
                    if (xiaoJ % 3 == 0) {
                        if (xiaoJ / 3 + muJ * 3 + gongJ * 5 == 100) {
                            System.out.println("第" + i + "种答案");
                            i++;
                            System.out.println("小鸡:" + xiaoJ + "只 母鸡:" + muJ + "只 公鸡:" + gongJ+"只");
                        }
                    }
                }
            }
        }
    }
    运行结果:第1种答案
    小鸡:75只 母鸡:25只 公鸡:0只
    第2种答案
    小鸡:78只 母鸡:18只 公鸡:4只
    第3种答案
    小鸡:81只 母鸡:11只 公鸡:8只
    第4种答案
    小鸡:84只 母鸡:4只 公鸡:12只
      

  12.   

    public class Practice {
    Practice(){
    for(int i=0;i<21;i++){
    for(int j=0;j<34;j++){
    for(int a=0;a<301;a++){
    int b=5*i+3*j+a/3;
    int c=i+j+a;
    if(b==100&&c==100 ){
    System.out.println(i);
    System.out.println(j);
    System.out.println(a);
    System.out.println("=====================================");
    }
    }
    }
    }
    }
    public static void main(String args[]){
    new Practice();
    }
    }
      

  13.   

    class Chicken {
    public static void main(String args[]) {
    int i=0,j=0;//i 小鸡 , j  母鸡  , 100-i-j   公鸡 
    for(i=0;i<=100;i+=3)//先算小鸡可以步长为3
       for(j=0;j<=100-i;j++){
          if(i/3+j*3+(100-i-j)*5==100) {
            System.out.println("公鸡:"+(100-i-j)+"母鸡:"+j+"小鸡:"+i);
          }
       }
    }
    }
    C:\java>java Chicken
    公鸡:0母鸡:25小鸡:75
    公鸡:4母鸡:18小鸡:78
    公鸡:8母鸡:11小鸡:81
    公鸡:12母鸡:4小鸡:84
      

  14.   

    public static void main(String[] args)
    {
    int x,z;
    //设公鸡数量X,母鸡数量Y,小鸡数量Z
    //联立方程得到Y=25-7/4X;
    //所以,为了让Y得到整数,则必须使得X可以整除4,
    //并且要让Y>=0,则应该X=12,8,4,0;
    //对应的Y=4,11,18,25;
    //对应Z=84,81,78,75;
    }
    //汗一个。本来想写完注释开始写程序,想不到注释写完就有结果了汗汗。
      

  15.   

    告知一下群的发展,便于更多好友加进来,这是内部帖里写的
    我的工具Java[1]  群号码 8622206  目前人数:快满
    我的工具Java[2]  群号码 34317592 目前人数:100(已满)
    我的工具Java[3]  群号码 2575657  
    我的工具Java[4]  群号码 38366490 目前人数:100(已满)
    我的工具Java[5]  群号码 38366664 
    我的工具Java[6]  群号码:38366732 
    我的工具Java[7]  群号码 14061272 由于人数不断增加  又添加3个群
    我的工具Java[8]  缺管理员   群号码 16183902 
    我的工具Java[9]  缺管理员  群号码:38545283 
    我的工具Java[10] 缺管理员   群号码 5952964
      

  16.   

    详情看内部帖子
    http://wodegongju.com/bbs/Show.Asp?ID=140此贴在更新
      

  17.   

    //穷举法
    for(int i=1;i<99;i++)
        for(int j=1;j<99;j++)
            for(int k=1;k<99;k++)
               if(i+j+k)==100
                        if(i*15+j*9+k==300)
                        {
                           System.out.prin("公鸡"+i+"只,");
                           System.out.prin("母鸡"+i+"只,");
      

  18.   

    System.out.prin("小鸡"+k+"只,");
                           System.out.println();
      

  19.   

    public static void main(String[] args){}
      

  20.   

    public static void main(String[] args){
      int cock = 0, hen = 5, chick;  while(hen > 4){
        hen = 25 - (cock / 4) * 7;
        chick = 100 - cock - hen;
        System.out.println("买公鸡:" + cock + ",买母鸡:" + hen + ",买小鸡:" + chick);
        cock += 4;
      } 
    }这样,只需要循环4次就可以得出结果,确实是一个很好的算法。
      

  21.   

    这种题还是用数学解来得方便
    设,公:a,母:b,小c。
    有方程:
    a + b + c = 100
    5a + 3b + c/3 = 100
    化简有:7a + 4b = 100
    可得:a为4的倍数
    设a = 4k,得到7k + b = 25
    得看出:k>=0 && k<4
    可以编程了:
    int a,b,c;
    for(int i=0;i<4;i+){
          a = 4*i;
          b = 25-7*i;
          c = 100 -a -b;
          System.out.println(a+" "+b+" "+c);
    }这电脑没有编写JAVA的环境,简单写写
      

  22.   

    用JavaScript写的
    <script>
    for(k=0;k<4;k++){
    a = 4*k;
    b = 25-7*k;
    c = 100 - a - b;
    document.write("g: "+ a + "m: " + b  + "x: " + c + "</br>");
    }
    </script>
      

  23.   

    某人拿着100块钱去买鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。
    要求:正好花完100元,买100只鸡。
    问:公鸡该买多少只,母鸡该买多少只,小鸡该买多少只?
    =============================================================
    推理一下吧:
    100元:100只 = 1:1
    =>(公+母+小)钱/只 = 1/1 
    =>公:母:小(只) = 3:5:15 (最小公倍数)
    由于(3+5+15)*X = 100(只)该公式不成立 => 公母小三者不能同时存在
    这样我们就三选二:
    (3+5)*X = 100 不成立 => 公和母 不存在
    (3+15)*X = 100 不成立 => 公和小 不存在
    (5+15)*X = 100 X为5时成立 => 母和小 存在
    验证:
    母:5*5=25只 25*3=75元
    小:15*5=75只 75*1/3=25元
    总钱数=100,总只数=100
    不错
      

  24.   

    public class Jiwenti

        public static void main(String args[]) 
         { 
            for (int i=1;i<20;i++) 
            for(int j=1;j<33;j++) 
            {  
              int k; 
              k=100-i-j; 
              if (k%3==0) 
              if (5*i+3*j+k/3==100) 
          System.out.println("公鸡="+i+"母鸡="+j+"x小鸡="+k); 
            } 
          } 
    }
      

  25.   

    public class MaiJi { public static void main(String[] args) {
    // TODO 自动生成方法存根
    for(int x=1;x<15;x++){
    for(int y=1;y<25;y++){
    int z=100-x-y;
    if((5*x+3*y+z/3)==100){
    System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z);
    }
    }
    } }}
      

  26.   

    public class Buy{
    public static void main(String[] args){
    for (int i=0;i<50;i++){
    for (int j=0;j<50;j++){
    if (((i*5+j*3+(100-i-j)/3)==100)&&((100-i-j)%3==0)){
    System.out.println(i);
    System.out.println(j);
    System.out.println(100-i-j);
    }
    }
    }
    }
    }
      

  27.   

    百度
    http://www.baidu.com/s?wd=%B0%D9%C7%AE%B0%D9%BC%A6&cl=3
    谷歌
    http://www.google.cn/search?complete=1&hl=zh-CN&q=%E7%99%BE%E9%92%B1%E7%99%BE%E9%B8%A1&meta=
      

  28.   

    import java.util.Hashtable;public class BuyChicken { public static void main(String[] args) {
    // TODO Auto-generated method stub
    BuyChicken t= new BuyChicken();
    for(float i=0; 7*i<100; ){
    Hashtable ret_hs = t.computBuy(i);
    String a = (String)ret_hs.get("a");
    String b = (String)ret_hs.get("b");
    String c = (String)ret_hs.get("c");
    System.out.println("gongji = " + a + "    muji = " + b + "    xiaoji = " + c);
    i += 4;
    } } public Hashtable computBuy(float i){
    Hashtable ret_hs = new Hashtable();
    int a=0, b=0, c=0;
    //5, 3, 1/3, 100yuan
    //15*a + 9*b + c = 300
    //a + b + c + 100
    //14*a + 8*b = 200
    //7*a + 4*b = 100
    b = (int)((100 - 7*i)/4);
    a = (int)i;
    c = 100 - b - a;
    if(c % 3 == 0){
    ret_hs.put("a", String.valueOf(a));
    ret_hs.put("b", String.valueOf(b));
    ret_hs.put("c", String.valueOf(c));
    }

    return ret_hs;
    }
    }
      

  29.   

    import io.*;/**我是新手,大家一起学习和进步啊。谢谢大家**/public class JiShu {
      private int a1,b1,c1;
    public static void main(String[] args)
    {
    JiShu mm = new JiShu();
    mm.go();
    }
      public void go()
     { for(int a1=0; a1<=100;a1++)
        {for(int b1=0; b1<=100;b1++)
           {if((100 == a1+a2+a3)&&(300 == 15*a1 + 9*b1 + c1))           System.out.printf("%d,%d,%d",a1,b1,c1);
           }    }
     } 
                      } 
      

  30.   

    //某人拿着100块钱去买鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。
    //要求:正好花完100元,买100只鸡。
    //问:公鸡该买多少只,母鸡该买多少只,小鸡该买多少只?
    package jiji;
    import java.*;
    public class baiji
    {
    public static void main(String []args)
      {
    for(int a=1;a<=20;a++)
    for(int b=1;b<=33;b++)
    {
    int c;
    c=100-a-b;
        if(c%3==0)
        if(5*a+3*b+c/3==100)
        System.out.println("gongji="+a+"muji="+b+"xiaoji="+c);
        }
      }
    }
    运行结果为:
    gongji4muji18xiaoji78
    gongji8muji11xiaoji81
    gongji12muji4xiaoji84
    Press any key to continue...
      

  31.   

    public class Shuji {
    public static void main(String args[]){
    for (int x = 0 ;  x <= 20 ; x ++){
    for ( int y = 0; y <= 100 - 5 * x; y++)
    for (int z = 0 ; z <= 3 * (100 - 5 * x - 3 * y);z++){
    if (x + y + z == 100 && 5 * x +
    3 * y + z /3 == 100 && z%3==0)
    System.out.println("gongji"+ x +"muji"+ y +"xiaoji"+ z );
    }
    }
    }
    }