C语言循环结构问题,百钱买百鸡

百钱买百鸡,解百钱买百鸡问题,100元买100只鸡,其中公鸡5元1只、母鸡3元1只、小鸡1元3只,要求每种鸡至少1只,编写程序输出所有的购买方案。

每种至少一只,便利就从1开始,小鸡的个数必须是3的倍数,一共三个解
望采纳
#include <stdio.h>

int main()
{
int i,j,k;
for(i=1;i<20;i++)
{
for(j=1;j<34;j++)
{
for(k=1;k<100;k++)
{
if(5i+3j+k/3==100&&k%3==0&&i+j+k==100)
{
printf("公鸡%d只,母鸡%d只,小鸡%d只\n",i,j,k);
}
}
}
}

}

img

img

不清楚小鸡能否买非3的倍数只,为了方便我就当只能买3的倍数只,还有100元是否要花完,如果要花完那小鸡就买不了非3的倍数只,如果不用花完就把5 * x + 3 * y + z / 3 == 100的==改为<=

#include<stdio.h>
int main()
{
    for (int x = 0; x <=20; ++x)
    {
        for (int y = 0; y <33; ++y)
        {
            for (int z = 0; z <100; z=z+3)
            {
                if (5 * x + 3 * y + z / 3 == 100 && x + y + z == 100)
                {
                    printf("公鸡:%d 母鸡:%d 小鸡:%d\n", x, y, z);
                }
            }
        }
    }

    return 0;
}

这就是个方程式
设 公鸡为x ,母鸡为y,小鸡为z
则得到如下方程式
5x+3y+1/3z=100;
x+y+z=100;
代码如下:

int main()
{
    for(int x=0;x<=100;++x)
    {
        for(int y=0;y<=100;++y)
        {
            for(int z=0;z<=100;++z)
            {
                if(5*x+3*y+z/3==100&&x+y+z==100)
                {
                    printf("公鸡:%d 母鸡:%d 小鸡:%d\n",x,y,z);
                }
            }
        }
    }

    return 0;
}

img


有用望采纳