百钱买百鸡,解百钱买百鸡问题,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);
}
}
}
}
}
不清楚小鸡能否买非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;
}