如何购买一批书使其最低价格

题目要求:

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

本数                  折扣

2                       5%

3                       10%

4                       20%

5                       25%

  根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

设计算法能够计算出读者购买一批书的最低价格。

一、设计思想


购买本书


价格


1


s1=8


2


s2=16*0.95=15.2


3


s3=24*0.9=21.6


4


s4=32*0.8=25.6


5


s5=40*0.75=30


6


4本和2本   s6=s4+s2=40.8


5本和1本   s6=s5+s1=38


3本和3本   s6=s3+s3=43.2


7


5本和2本   s7=s5+s2=45.2


4本和3本   s7=s4+s3=47.2


8


5本和3本   s8=s5+s3=51.6


4本和4本   s8=s4+s4=51.2


9


5本和4本   s9=s5+s4=55.6

通过上面的表格可以看出,建设购买的本数为n:

如果n<=5直接按折扣购买即可

如果 5< n<10时,除了本数为8外,其余的都是5本加上n-5

如果 n>10时,都可以分成10*i+k的形式,其中k本书的计算方法和上面类似。

二、源程序

 1 //设计者 信1201-2班 司新红
 2
 3 #include "stdafx.h"
 4 #include "iostream"
 5 using namespace std;
 6
 7 int main()
 8 {
 9     int b;//定义购买的书籍数
10     int m,n;
11     int i;
12     double sum=0;
13     cout<<"请输入需要购买的书籍数:"<<endl;
14     cin>>b;
15     m=b/5;
16     n=b%5;
17     i=n+5;
18     if(i!=8)
19     {
20         switch(n)
21         {
22         case 0:
23             sum=m*40*0.75;
24             break;
25         case 1:
26             sum=m*40*0.75+8;
27             break;
28         case 2:
29             sum=m*40*0.75+16*0.95;
30             break;
31         case 3:
32             sum=m*40*0.75+24*0.9;
33             break;
34         case 4:
35             sum=m*40*0.75+32*0.8;
36             break;
37         }
38     }
39     else
40         sum=(m-1)*30+4*8*0.8*2;
41     cout<<"读者购买"<<b<<"本书的最低价格为:"<<endl;
42     cout<<sum<<endl;
43     return 0;
44 }

三、运行结果

四、实验总结

这次的实验我感觉编写起来不是很难,最主要的是思路想到就可以了,思想在课堂上经过老师的提示以及我和同学的讨论就想到了算法大概应如何实现了。这次的代码也不用特别的繁琐,功能还是比较好实现的,我在编写的过程中,就是在考虑买8本书时应如何处理时遇到了一点困难。

时间: 2024-10-15 23:27:03

如何购买一批书使其最低价格的相关文章

课堂练习——计算法能够计算出读者购买一批书的最低价格。

1.题目. 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示, 单独一卷售价8元, 具体折扣如下所示:                          本数                  折扣                          2                       5%                          3                       10%                          4  

设计算法能够计算出读者购买一批书的最低价格

一.题目:      n书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示 本数 2,折扣5%:本数 3,折扣10%:本数4 ,折扣20%:本数5,折扣25%:根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠. 二.解题思路: 通过对6本书.7本书.8本书.9本书的分析得到当本数为6.7.9时,最便宜的组合为5+1,5+

购买一批书的最低价格

题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                     折扣 2                        5% 3                       10% 4                       20% 5                       25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两

读者购买一批书的最低价格

题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示:                               本数                  折扣                                   2                       5%                                   3                       10%         

课堂练习--计算购买一批书最低价格

1.设计思想 通过找规律发现,当购买数量大于5本时,有两种情况.第一种:如果数的最后一位的值为8,则这八本按两个四本来算,剩下的按五本一划分来算最低:第二种:数的最后一位的值不为8,则将数对五求余,求商,根据余数大小选择对应的价格,用商乘每5本对应的价钱最低. 2.代码实现 1 import java.util.Scanner; 2 import java.util.InputMismatchException; 3 public class Cheicp { 4 5 public static

算法-书的最低价格

一.实验题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示:                               本数                  折扣                                   2                       5%                                   3                       10%     

购买《哈利波特》系列书籍的最低价格

一.题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示:                               本数                  折扣                                   2                       5%                                   3                       10%       

课堂练习---最低价格买书

书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数 折扣 2 5% 3 10% 4 20% 5 25%根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠.设计算法能够计算出读者购买一批书的最低价格. 思路:首先算出1到10本的最低价格, 1本 8元 2本 15.2元 按照两本的折扣 (和上一个阶段差7.2元) 3本

求购买一批打折书的最低价格

设计思想: 前五本书的最低价已经计算出,每增加一本书,所花的钱就会增加 8  7.2   6  4.4或 4.4 元 如此循环下去 源代码: import java.util.Scanner; public class minMoney { public static void main(String args[]){ int booknumber=0; double money=0; Scanner in=new Scanner(System.in); System.out.print("你要