1. 程式人生 > >哈利波特書籍購買

哈利波特書籍購買

題目要求:

書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編號0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:

                               本數                  折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。

設計演算法能夠計算出讀者購買一批書的最低價格。

要求將設計思想、程式碼實現、實現截圖、個人總結以博文的形式發表。

1設計思路:

0,1,2,3,4共五本。一本八塊錢

 

本數折扣

2   5%

3   10%

4   20%

5  25%

   

 

本,價錢           原價         降價

1    8             8           

2    16-16*%5 =15.2     16      0.8

3    3*8-3*8*%10  =21.6  24    2.4

4    32-32*%20 =25.8    32      6.4

5    40-40*%25 =30     40       10

 

 

 

6本 3+3  1+5  2+4  

43.2  38   41

 

7本  1+6  2+5   3+4

46     45.2   47.4

 

 

8本 1+7  2+6  3+5    4+4

53.2 53.2   51.6      51.6

 

9本  1+8   2+7    3+6    4+5 

      59.6   60.4   59.6   55.8

10 本 5+5 

通過以上對購買1到10本的購買分析,可以分別得到1到10本的最佳購買方式。 大多時候選擇五本書為一個整體來購買。餘下的就隨機購買五本書中不相同的卷就可以價格最低。但在數量為8的情況有所不同,這時候選擇4+4組合價格更低。

當購買數量大於十時,採用除以10取餘的方法,餘數部分使用前面分析的購買方式,其餘使用5本整體的購買方式。注意在餘數為8時的不同。

2源程式程式碼:

#include<iostream>
using namespace std;
 
void  main()
{
    int Book=0;
    double money;
    double a[5]={0,0.05,0.1,0.2,0.25};
 
    while(Book<1)
    {
        cout<<"請輸入你想要買的書的本數:";
        cin>>Book;
    }
    if(Book%10==8)
    {
        money=(Book/10)*10*8*(1-a[4])+(Book%10)*8*(1-a[3]);
    }
    else
    {
        money=(Book/5)*5*8*(1-a[4])+(Book%5)*8*(1-a[Book%5-1]);
    }
 
    cout<<"讀者購買這批書的最低價格為:"<<money<<endl;
    cout<<"購買方式如下:"<<endl;
    if(Book%10==8)
    {
        cout<<"五本中有四本書每本買"<< (Book/10)*2+2<<"本,";
        cout<<"剩下的一本買"<< (Book/10)*2<<"本,"<<endl;
    }
    else
    {
        if(Book%5!=0)
        {
            cout<<"五本中有"<<Book%5<<"本書每本買"<< Book/5+1<<"本,";
            cout<<"剩下的"<<5-Book%5<<"本每本買"<< Book/5<<"本,"<<endl;
        }
        else
        {
            cout<<"五本書每本買"<< Book/5<<""<<endl;
        }
         
    }
    
}

 

 3 結果截圖:

4個人總結:

在遇到問題的時候,要是沒有思路就自己多列舉一下,從中找到規律。