题解 | 百鸡问题
#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; }