题解 | 百鸡问题
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
using namespace std;
int main() {
int n, x, y, z;
while (scanf("%d", &n) != EOF) {
for (x = 0; x <=100; x++) {
for (y = 0; y <= (100-x); y++) {
z = 100 - x - y;
/*if ((5 * x + 3 * y + z / 3) <= n) {//这样处理会导致z/3省略了小数,实际上加起来的和比n要大
printf("x=%dy=%dz=%d\n", x, y, z);
}*/
if (15 * x + 9 * y + z <= 3*n) {//方程两边同时乘上3,避免了小数的情况
printf("x=%d,y=%d,z=%d\n", x, y, z);
}
}
}
}
return 0;
}