题解 | #百鸡问题#
百鸡问题
https://www.nowcoder.com/practice/01d161052db64c249a47fc723b4fd5db
#include <iostream> int main() { int n; // 100 只鸡 // 5元 大鸡 x // 3元 小鸡 y // 1/3元 鸡娃 z while (EOF != scanf("%d", &n)) { // 优先满足z 再满足y 最后满足x 就能得到 x y z 依次增大的顺序 // 所以 z要在最内层循环 y在中间循环 x 最慢,x循环1次 y循环1 * 100次, z 循环 1 * 100 * 100 次 for (int x = 0; x <= 100; ++x) { for (int y = 0; y <= 100 - x; ++y) { for (int z = 0; z <= 100 - x - y; ++z) { if ((100 == x + y + z) && n >= z * 0.3333 + y * 3 + x * 5) { printf("x=%d,y=%d,z=%d\n", x, y, z); } } } } } return 0; }