题目:https://www.nowcoder.com/practice/01d161052db64c249a47fc723b4fd5db?tpId=40&tqId=21487&tPage=2&rp=2&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。

代码

用了ceil函数,确保答案肯定是正确的

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cmath>
  4. using namespace std;
  5. int main(){
  6. int n;
  7. while(scanf("%d", &n)!=EOF){
  8. int x, y, z; // x,y,z代表个数
  9. for(x = 0; x <= 100; x++){
  10. for(y = 0; y <= 100 - x; y++){
  11. z = 100 - x - y;
  12. if(5 * x + 3 * y + ceil(z * 1.0 / 3) <= n){
  13. printf("x=%d,y=%d,z=%d\n", x, y, z);
  14. } else {
  15. break;
  16. }
  17. }
  18. }
  19. }
  20. }