码迷,mamicode.com
首页 > 其他好文 > 详细

优惠购书

时间:2015-05-08 23:30:22      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

1.题目:

书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元,具体折扣如下所示:

本数        折扣

2             5%

3             10%

4              20%

5             25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
2.设计思路
刚开始看到这个题目时,感觉挺难的,感觉有好多种情况,后来仔细阅读题目后,跟同学讨论分析后,发现这个题目其实就是将数字分解,知道这么回事后,就开始分析每一个数,分析过程中发现其实小于5的数字不用分析,只需要分析6-9的数字就行,之后的数都会循环。针对6-9之间的数字进行分析,将各种情况进行计算,最终得到结论:
6=5+1
7=5+2
8=4+4
9=5+4
这样就会扩大到一般情况。
3.源代码
#include<iostream>
using namespace std;

double mSum(int n)
{
    int m = 0;
    double money;
    m = n % 5;
    m = m + 5;
    switch (m)
    {

    case 5:
        money = n * 8 * 0.75;
        break;
    case 6:
        money = (n - 1) * 8 * 0.75 + 8;
        break;
    case 7:
        money = (n - 2) * 8 * 0.75 + 8 * 2 * 0.95;
        break;
    case 8:
        money = (n - 8) * 8 * 0.75 + 4 * 8 * 0.8 * 2;
        break;
    case 9:
        money = (n - 4) * 8 * 0.75 + 8 * 4 * 0.8;
        break;
    }
    return money;
}
int main()
{
    int n;
    cout << "请输入购买数量:" << endl;
    cin >> n;
    cout << endl;
    cout << "最优惠总书价:" << mSum(n) << "" << endl;
}
4.程序截图
技术分享

技术分享

5.总结
要学会把实际问题抽象出来,将实际问题转化为比较容易懂的模型。对于感觉比较复杂的程序,要注意分析情况的特殊性,先分析比较少的数,由特殊到一般,从而找出规律,这样程序就会简单许多。

 

优惠购书

标签:

原文地址:http://www.cnblogs.com/gting/p/4488914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!