题目描述
这是一个经典问题:话说某人用一百个铜钱刚好买了一百只鸡, 其中一只公鸡x个铜钱, 一只母鸡y个铜钱,一个铜钱z只小鸡,问一百只鸡中公鸡,母鸡,小鸡各有多少只呢?
输入描述
输入数据包含三个正整数x、y、z,其具体含义参见题目描述。
输出描述
如果给定的数据无解,请输出:"no solution!".
否则,请分别输出公鸡、母鸡和小鸡的个数,数据之间用一个空格隔开。
如果有多组答案,请用多行输出所有结果,并优先输出x较小的结果(x相同的,再比较y,y较小者优先输出),具体格式参见样例;
输入样例
5 3 3
输出样例
4 18 78
8 11 81
12 4 84
三层循环遍历
#include<stdio.h>
int main()
{
int x,y,z,i,j,k,flag=1;
scanf("%d %d %d",&i,&j,&k);
for(x=1; x<=100; x++)
for(y=1; y<=100; y++)
for(z=1; z<=100; z++)
{
if((i*x+j*y+z/k==100)&&(x+y+z==100)&&z%k==0){
printf("%d %d %d\n",x,y,z);
flag=0;
}
}
if(flag==1)
printf("no solution!");
}
一般就是去穷举法
#include <stdio.h>
int main(void)
{
int x,y,z;
int i,j,k;
int count = 0;
scanf("%d%d%d",&x,&y,&z);
for(i=0;i<=100/x;i++)
{
for(j=0;j<=100/y;j++)
{
for(k=0;k<=100;k++)
{
if(i*x+j*y+k/z==100 && i+j+k == 100 && k%z==0)
{
printf("%d,%d,%d\n",i,j,k);
count++;
}
}
}
}
if(count==0)
printf("no solution!");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!