《C语言及程序设计》实践参考——如何买玫瑰?

返回:贺老师课程教学链接  C语言及程序设计初步  项目要求


要求:小慧过生日,小明(小明真忙)要买鲜花送她。每枝红玫瑰5元,满5支送1枝,满20枝送5枝。小明一共有n(n>10)元钱,最多能买到多少?
样例输入:135
样例输出:33


[参考解答]
思路:样例中的33枝是怎么来的?5元一支,135元能买27支。他这样买:先买20支,这时赠5支,再买7支,还能再送1支,这样就能达到33支了。
于是,先尽可能享受买20赠5的优惠,再看享受买5赠1的优惠。这是贪心法的思维。
写出下面的代码:

#include <stdio.h>
int main( )
{
    int money, n, z1, z2;
    scanf(135"%d", &money);
    n=money/5;    //实际能买的玫瑰
    z1=n/20*5;    //买够20就能送5支
    z2=(n-(n/20)*20)/5;  //不够买20赠5的,享受买5赠1的
    printf("%d\n", n+z1+z2);
    return 0;
}


你可能感兴趣的:(《C语言及程序设计》实践参考——如何买玫瑰?)