解法1
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int main(){
int n, x, y, z;
while(~scanf("%d", &n)){
for(x = 0; x <= 20; x++)
for(y = 0; y <= 33; y++)
for(z = 0; z <= 300; z++){
if(5 * x + 3 * y + ceil(z * 1.0 / 3) <= n && x + y + z == 100)
printf("x=%d,y=%d,z=%d\n", x, y, z);
}
}
return 0;
}
解法2
#include <cstdio>
using namespace std;
int main(){
int n, x, y, z;
while(~scanf("%d", &n)){
for(x = 0; x <= 100; x++){
for(y = 0; y <= 100 - x; y++){
int z = 100 - x - y;
if(x * 5 * 3 + y * 3 * 3 + z <= n * 3)
printf("x=%d,y=%d,z=%d\n", x, y, z);
}
}
}
return 0;
}