日常练习

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

解题思路

    1. x,y的取值范围,假设x为大鸡,y为中鸡,很多人可能直接判断条件就是0 <= x <= 100 || 0 <= y <=100,其实咱都学过数学或者有过实际买东西的经验,买东西的时候是跟实际的金钱挂等号的,而不是跟你的购物欲望划等号。所以这里的x和y的取值应该是 0 <= x <= (int)(money / 5) || 0 <= y <=(int)(money/3)
    2. 因为我定义的x,y,z都为整形,所以判断条件时候需要等号两边都*3
    1. #include <stdio.h>  
    2. #include <stdlib.h>  
    3. #include <string.h>  
    4.   
    5. int main()  
    6. {  
    7.     int x, y, z, n;  
    8.   
    9.     while(scanf("%d", &n) != EOF)  
    10.     {  
    11.         for(x = 0; x <= (int)(n / 5); x ++)  
    12.         {  
    13.             for(y = 0; y < (int)(n / 3); y ++)  
    14.             {  
    15.                 z = 100 - x - y;  
    16.                 if((15 * x + 9 * y + z <= n * 3) && z >= 0)  
    17.                     printf("x=%d,y=%d,z=%d\n", x, y, z);  
    18.             }  
    19.         }  
    20.     }  
    21.   
    22.     return 0;  
    23. }  

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值