《买书最低价格》

(1)题目:

     n书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示 本数 2,折扣5%;本数 3,折扣10%;本数4 ,折扣20%;本数5,折扣25%;根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

(2)解题思路:

根据题目提示,可进行买一本,两本,三本,依次增加这样进行推算,前五本都是按序号买即可,根据计算可知,当需要买六本时,即买五卷完整的与随机一本最便宜。依次推算,七本也是同样道理,而八本时,经过计算情况有变化,四本一套与四本一套最为划算,而九本又与原来的六,七本购买情况相同。最后得出结论,将所要买的书本数除以十取余数,除余数以外的书都是5的倍数则按套买即可,余数则根据以上推演的结论搭配购买方案即可

(3)代码:

//康娜,2015年5月8日

#include<iostream>
using namespace std;

void main()
{
    int n=0,a,b;
    cout<<"请输入要买的本数:";
    cin>>n;
    a=n/10;
    b=n%10;
    switch(b)
    {
    case 0:cout<<"购买"<<2*a<<"套书最划算。";break;
    case 1:cout<<"购买"<<2*a<<"套书加随机一本最划算。";break;
    case 2:cout<<"购买"<<2*a<<"套书加0,1两本书最划算。";break;
    case 3:cout<<"购买"<<2*a<<"套书加0,1,2三本书最划算。";break;
    case 4:cout<<"购买"<<2*a<<"套书加0,1,2,3四本书最划算。";break;
    case 5:cout<<"购买"<<2*a+1<<"套书最划算。";break;
    case 6:cout<<"购买"<<2*a+1<<"套书加随机一本最划算。";break;
    case 7:cout<<"购买"<<2*a+1<<"套书加0,1两本书最划算。";break;
    case 8:cout<<"购买"<<2*a<<"套书加0,1,2,3两套四本书最划算。";break;
    case 9:cout<<"购买"<<2*a+1<<"套书加0,1,2,3四本书最划算。";break;
    }
    cout<<endl;
}

(4)截图

(5)总结

程序=数据结构+算法。虽然本例中,数据的结构与算法都非常简单,但是正是因为算法的不同,程序的行数,程序的运行时间,运行效果才有了很大的不同。算法是程序的灵魂,是决定程序好坏的关键。我意识到算法的重要性,也意识到了多思考多讨论多想多写的重要性,这样得出的算法才能一次次优化,课堂上很多时候老师对我们的引导就是优化的过程。

原文地址:https://www.cnblogs.com/lottie021/p/4504623.html