购买图书
1. 題目:
書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編號0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:
本數 折扣 2 ? ?5%
? ? ? ? ? ? ?3 ? ?10%
? ? ? ? ? ? ?4 ? ?20%
? ? ? ? ? ? ?5 ? ?25%
? ? ? 根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。
? ? ? 設計算法能夠計算出讀者購買一批書的最低價格。
2. 設計思想:
? ? ? 如果購買的本書小于等于5本,則有多少本買多少本不一樣的。如果大于5本,則需要考慮。比如6本,是3 3優惠,還是5 1優惠等等。每5個為一個循環,所以只需要考慮6到10就可以了。其中6 7 9都是5和余數最省錢。而8則是4 4最省錢,所以這是一個例外,需要考慮。
3. 源代碼
#include<iostream> using namespace std;int main() {int num;double money;cout<<"請輸入要買圖書本書:";cin>>num;if(num<=0){cout<<"請重新輸入要買圖書個數:";}else if(num>0){int m=num/5;int n=num%5;if(m==0){if(n==0){money=0;}else if(n==1){money=8;}else if(n==2){money=8*2*(1-0.05);}else if(n==3){money=8*3*(1-0.10);}else if(n==4){money=8*4*(1-0.20);}}else if(m>0){if(n==0){money=5*m*8*(1-0.25);}else if(n==1){money=5*8*m*(1-0.25)+8;}else if(n==2){money=5*8*m*(1-0.25)+8*2*(1-0.05);}else if(n==3){money=5*8*(m-1)*(1-0.25)+8*4*2*(1-0.20);}else if(n==4){money=5*8*m*(1-0.25)+8*4*(1-0.20);}}}cout<<"最低價格為:"<<money<<"元"<<endl;return 0; }4.程序結果截圖:
5.總結
編程時要考慮特里情況和普遍情況,從中找尋規律實現算法。
轉載于:https://www.cnblogs.com/shenshenxin/p/5588834.html
總結
- 上一篇: quartz 数据库配置
- 下一篇: cxLookupComboBox使用方法