我算法不过关,用代码求算法。

公鸡4元1只,母鸡2元一只,小鸡1元3只,共100元买100只鸡,求公鸡,母鸡,小鸡分别是多少。

for (int g = 0; g <= 100; g++)
{
for (int m = 0; m <= 100 - g; m++)
{
x = 100 - g - m;
if (g * 4 * 3 + m * 2 * 3 + x == 300) printf("%d %d %d", g, m, x); // g m x分别是公母小
}
}

设未知数,然后根据题意列等式,最后求未知数。

  public static void main(String[] args) {
            int count=0;
            for(int i=0;i<=100/4;i++){
                for(int j=0;j<=100/2;j++){
                    if((100-i-j)%3==0){
                        if(4*i + j*2 + (100-i-j)*(1/3) == 100){
                            count++;
                            System.out.println(count + ":公鸡:" + i + ";母鸡:" + j + ";小鸡:" + (100-i-j));
                        }
                    }                  
                }
            }
            System.out.println("总共有 " + count + " 种情况");
        }

图片说明

上面错了,这个可以
public static void main(String args[]){
int a = 1;
int b = 1;
double c = 3;
for(a=1;a<=25;a++){
for(b=1;b<=50;b++){
for(c=3;c<=300;c=c+3){
if((a*4 + b* 2 + c/3)==100 && (a+b+c==100)){
System.out.println("公鸡:" + a + " 母鸡: " + b + " 小鸡:" + c);
}
}
}
}

}

之前没怎么仔细看,刚刚改一下你看看吧。这个问题百度上面回答多的很啊。。。一搜就是答案

  public static void main(String[] args) {
            int count=0;
            for(int i=0;i<=100/4;i++){
                for(int j=0;j<=100/2;j++){
                    for(int k=0;k<=300;k++){
                            if(4*i + j*2 + k/3 == 100 && k%3==0 && i+j+k==100){
                                count++;
                                System.out.println(count + ":公鸡:" + i + ";母鸡:" + j + ";小鸡:" + k);
                        }
                    }                  
                }
            }
            System.out.println("总共有 " + count + " 种情况");
        }