zoukankan      html  css  js  c++  java
  • 购买一批书的最低价格

    问题:

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

    本数 折扣
    2 5%
    3 10%
    4 20%
    5 25%

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

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

    设计思想:经过找规律,每十本书为一个价格循环周期,唯一出现变化的地方是在买第八本的时候规律与之前的不一样,买两个四本书,比买一个五本书外加三本书的总体折扣大。所以我们以十本书为一个周期来做这道题。

    代码如下:

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int i, m, n;
     6     double s = 0;
     7     cout << "请输入想要购买书的数量:";
     8     cin >> i;
     9     while (i <= 0)
    10     {
    11         cout << "输入的数不正确,请输入正整数" << endl;
    12         cin >> i;
    13     }
    14     m = i / 10;//求整
    15     n = i % 10;//求余
    16     if (n == 0)
    17     {
    18         s = 60 * m;//10的整数倍
    19     }
    20     if (n == 1)
    21     {
    22         s = 60 * m + 8;//买10n+1本书的价格
    23 
    24     }
    25     
    26     if (n == 2)              //买10n+2本书的价格
    27     {
    28         s = 60 * m + 2 * 8 * 0.95;
    29     }
    30     if (n == 3)              //买10n+3本书的价格
    31     {
    32         s = 60 * m + 3 * 8 * 0.90;
    33 
    34     } 
    35     if (n == 4)              //买10n+4本书的价格
    36     {
    37         s = 60 * m + 4 * 8 * 0.8;
    38     }
    39     if (n == 5)              //买10n+5本书的价格
    40     {
    41         s = 60 * m + 5 * 8 * 0.75;
    42     }
    43     if (n == 6)              //买10n+6本书的价格
    44     {
    45         s = 60 * m + 30 + 8;
    46     }
    47     if (n == 7)               //买10n+7本书的价格
    48     {
    49         s = 60 * m + 30 + 2 * 8 * 0.95;
    50     }
    51     if (n == 8)              //买10n+8本书的价格
    52     { 
    53         s = 60 * m + 2 * 4 * 8 * 0.8;
    54     } 
    55     if (n == 9)                //买10n+9本书的价格
    56     {
    57         s = 60 * m + 30 + 4 * 8 * 0.8;
    58     }
    59     cout << "" << i << "本书,花费的最低价钱为:" << s <<endl;
    60     return 0;
    61 }

    测试结果:

    测试数据分别为当买 -5本书时,和买五本书时的价格

    测试数据为当买17本书时的价格:

  • 相关阅读:
    LeetCode -- 最大连续乘积子序列
    openCV 和GDI画线效率对照
    java并发编程之CountDownLatch
    约瑟夫环问题
    (hdu step 7.2.1)The Euler function(欧拉函数模板题——求phi[a]到phi[b]的和)
    群“模”乱舞之简单工厂模式
    在iPad iOS8环境下打开相冊或者拍照
    js斐波那契数列求和
    cocos2d-x 显示触摸操作(显示水波点击效果,用于视频演示)
    DOM基础及DOM操作HTML
  • 原文地址:https://www.cnblogs.com/apan008/p/5580423.html
Copyright © 2011-2022 走看看