假设公鸡 2元/只,母鸡 3元/只,小鸡 3元/只,用100元买100只鸡,有多少种算法,求好理解的算法,感激不尽。

解决方案 »

  1.   

    for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只
        for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
            int k = (100-i-j); //k表示小鸡数         if (2*i+3*j+3*k == 100) { //如果价钱刚好是100
                System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
            }
        }
    }
      

  2.   

    回复java代码,点本栏上的带#号的图标选java语言,插入那两对中括号的中间,复制里面的代码有时没有换行,导致//注释一大片,试试从下往上拉鼠标选,或者选文字时鼠标多少变变位置,如从左上到右下拉。
    直到粘贴时格式还在就行。
      

  3.   

    小鸡为1元3只时for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只
        for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
            int k = (100-i-j); //k表示小鸡数               
             if (2*i+3*j+k/3 == 100) { //如果价钱刚好是100
              if(k%3==0){
                   System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
                }
            }
          }
    }
      

  4.   

    全都是嵌套for循环,这样时间效率
    不可以用数学方式吗???
    小鸡1元3只
    x+y+z=100
    2x+3y+z/3=100
    100>=x>=0,100>=y>=0,100>=z>=0(x、y、z属于Z+)
      

  5.   

    public class Chook{
    public static void main(String args[])
    {
    int x,y,z;
    for(x=0;x<50;x++)
    {
    for(y=0;y<33;y++)
    {
    if(2*x+3*y+(100-x-y)/3==100&&(100-x-y)%3==0)
    System.out.println("公鸡有"+x+"只    母鸡有"+y+"只   小鸡有"+(100-x-y)+"只");
    }
    }
    } }
      

  6.   

    for (int i=0; i<=100/2; i++) { //i表示公鸡数,最少0只,最多100(元)/2(元)=50只
        for (int j=0; j<=(100-2*i)/3; j++) { //j表示母鸡数
            int k = (100-i-j); //k表示小鸡数         if (2*i+3*j+3*k == 100) { //如果价钱刚好是100
                System.out.printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n", i, j, k);
            }
        }
    }
      

  7.   

    如果小鸡是一元3只:        for(int gj=0;gj<100/2;gj++){                                //gj是公鸡的数量
                for(int mj=0;mj<100/3;mj++){                            //mj是母鸡的数量
                    for(int xj=0;xj<100*3;xj++){                        //xj是小鸡的数量
                        if(gj*2+mj*3+xj/3==100&&gj+mj+xj==100){
                            System.out.println(gj+"----"+mj+"----"+xj);
                        }
                    }
                }    
            }
      

  8.   

    贴下单层循环解法的代码:
    for(int i=1;i<=(200/8);i++){
        if((200-i*8)%5==0){
            int a=(200-i*8)/5;
            System.out.println("母鸡"+i+"公鸡"+a+"仔鸡"+(100-i-a));
        }
    }