百钱买百鸡,大一刚学计算机

题目描述
这是一个经典问题:话说某人用一百个铜钱刚好买了一百只鸡, 其中一只公鸡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;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632