题解 | 百鸡问题
百鸡问题
https://www.nowcoder.com/practice/01d161052db64c249a47fc723b4fd5db
#include <iostream> // #include <cstdio> using namespace std; int main() { float n; cin>>n; for(int x=0;x<=100;x++){ for(int y=0;y<=100;y++){ for(int z=0;z<=100;z++){ if(x+y+z==100 && x*5+y*3+z/3.0<=n){ printf("x=%d,y=%d,z=%d\n",x,y,z); } } } } } // 64 位输出请用 printf("%lld")
打卡:004;
算法思路:枚举;
注意点: z/3
是整数除法,返回的结果也是取整数,会丢失精度;精确计算应该用 z/3.0
3.0是浮点数,运算结果会自动转成float类型;