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

买书问题

时间:2015-04-15 18:55:31      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号01234表示,单独一卷售价8元,具体折扣如下所示:
                               本数                  折扣
                                   2                       5%
                                   3                       10%
                                   4                       20%
                                   5                       25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
 1 #include<iostream.h>
 2 int main(){
 3     int num;
 4     int m,n;
 5     float sum;
 6     cout<<"请输入要购买的书的本书:";
 7     cin>>num;
 8     m=num/5;
 9     n=num%5;
10     if(num!=3)
11     {
12         switch(n)
13         {
14         case 0:
15             sum=num*8*0.75;
16             break;
17         case 1:
18             sum=m*5*8*0.75+8;
19             break;
20         case 2:
21             sum=m*5*8*0.75+2*8*0.95;
22             break;
23         case 3:
24             sum=(m-1)*5*8+4*8*0.8+4*8*0.8;
25             break;
26         case 4:
27             sum=m*5*0.75+4*8*0.8;
28             break;
29         }
30     }
31     else
32         sum=3*8*0.9;
33     cout<<"读者购买一批书的最低价格为:"<<sum<<""<<endl;
34     return 0;
35 }

截图:

 技术分享
技术分享
技术分享
心得体会:
做这道题时,我把6-10本的情况进行了计算:当买6本时,5本和1本买最便宜;买7本时,5本和2本买最便宜;买8本时,4本和4本买最便宜;买9本时,5本和4本最便宜;买10本时,5本和5本买最便宜。然后10以上的数我们可以看成这些的组合。比如11可以变成,5,5,1;12变成5,5,2。但有特殊的情况,当买的本数除以5时,余3的情况时,比如13,我们不能把他分成5,5,3,我们应该看成5,8,也就是5,4,4,这样的最便宜。所以,我们可以根据除以5的情况,来进行编程。
这道题还是考验了一下数学的能力,虽然中间计算花了点时间,但是编程还是顺利的完成了。

买书问题

标签:

原文地址:http://www.cnblogs.com/xuqingtian/p/4429272.html

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