题目描述 已知公鸡五元一只,母鸡三元一只,小鸡一元三只。输入买鸡总钱数n和鸡的总数m,遇到文件末尾结束。输出可能的公鸡、母鸡、小鸡数,如不可能实现输出“no answer”,格式见样例。 输入 在一行输入买鸡总钱数和鸡的总数。 输出 在一行输出公鸡、母鸡、小鸡数。c语言实现
时间: 2023-11-27 16:49:30 浏览: 43
以下是使用 C 语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, m;
while (scanf("%d%d", &n, &m) != EOF) { // 循环读取输入直到文件末尾
int flag = 0; // 标记是否找到答案
for (int x = 0; x <= n / 5; x++) { // 枚举公鸡的数量
for (int y = 0; y <= n / 3; y++) { // 枚举母鸡的数量
int z = m - x - y; // 计算小鸡的数量
if (z >= 0 && z % 3 == 0 && 5 * x + 3 * y + z / 3 == n) { // 判断是否满足条件
printf("%d %d %d\n", x, y, z); // 输出答案
flag = 1; // 找到答案,标记为 1
break; // 跳出循环
}
}
if (flag) break; // 找到答案,跳出循环
}
if (!flag) printf("no answer\n"); // 没有找到答案,输出 no answer
}
return 0;
}
```
该程序使用了两层循环枚举公鸡和母鸡的数量,并计算出小鸡的数量。然后判断是否满足条件,如果满足则输出答案并标记为已找到答案;否则继续枚举。如果所有可能的情况都不满足条件,则输出 no answer。