標籤:
1.設計題目
書店針對《哈利傳輸速率》系列書籍進行促銷活動,一共5卷,用編號0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:
本數 折扣
2 5%
3 10%
4 20%
5 25%
2.設計要求
根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。
設計演算法能夠計算出讀者購買一批書的最低價格。
要求將設計思想、代碼實現、實現、個人總結以博文的形式發表。
3.設計思想
能夠確定的是5本下的購買數量,買不同卷的書是最便宜的,大於5本的需要分兩種情況, 6本5,1分配;7本5,2分配;8本4,4分配,9本,5,4分配,10本,5,5分配為最佳。
4.代碼
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int num; 6 int m; 7 int n,d; 8 double sum; 9 do{10 cout<<"請輸入要買圖書本書:";11 cin>>num;12 13 if(num<=0)14 {15 cout<<"請重新輸入要買圖書個數:";16 }17 else if(num>0)18 {19 m=num/5;20 n=num%5;21 if(m==0)22 {23 if(n==0)24 {25 sum=0;26 }27 else if(n==1)28 {29 sum=8;30 }31 else if(n==2)32 {33 sum=8*2*(1-0.05);34 }35 else if(n==3)36 {37 sum=8*3*(1-0.10);38 }39 else if(n==4)40 {41 sum=8*4*(1-0.20);42 }43 }44 else if(m>0)45 {46 if(n==0)47 {48 sum=5*m*8*(1-0.25);49 }50 else if(n==1)51 {52 sum=5*8*m*(1-0.25)+8;53 }54 else if(n==2)55 {56 sum=5*8*m*(1-0.25)+8*2*(1-0.05);57 }58 else if(n==3)59 {60 sum=5*8*(m-1)*(1-0.25)+8*4*2*(1-0.20);61 }62 else if(n==4)63 {64 sum=5*8*m*(1-0.25)+8*4*(1-0.20);65 }66 }67 cout<<"最低價格為:"<<sum<<"元"<<endl;68 cout<<"如果需要計算其他數量的價格請輸1,否則0:";69 cin>>d;70 cout<<endl;}71 }72 while(d==1);73 return 0;74 }
5、程式
6、實驗感想
要對輸入的變數進行運算時輸入語句要放在運算語句前,否則無法運行,這是本次編程遇到的錯誤。我感覺這個程式可以用函數調用來做,可能代碼會容易讀一點,可能會少幾個大括弧吧。。
書店折扣問題