一、題目:
書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,單獨一卷售價8元,具體折扣如下:本數對應的折扣分別為:2本—5%,3本—10%,4本—20%,5本—25%。根據購買的卷數以及本數,會對應不同的折扣規則情況。單獨一本書只會對應一個折扣規則。設計演算法能夠計算出讀者購買一批書的最低價格。
二、設計思路:
對於1-5,定義double具有返回值型別的函式,列舉5種優惠情況。對於6-9,例如7,先計算2和5這種情況,然後2加1變3,計算3和4這種情況;然後3再加1,計算4,3這種情況。直至加一後小於5。對於10以上,那就簡單了。。
三、原始碼:
#include<iostream.h> double fa(int i) { double a; switch(i) { case 1:a=1.0;break; case 2:a=0.95;break; case 3:a=0.9;break; case 4:a=0.8;break; case 5:a=0.75;break; } return a; } int main() { int booknumber,keybook,a,i,d,b,g,j; double sum; cout<<"input:"; cin>>booknumber; if(booknumber>0&&booknumber<=5) { double c=fa(booknumber); sum=c*booknumber*8; cout<<sum; } else if(booknumber>5&&booknumber<=9) { a=booknumber-5; double d=fa(a); sum=d*a*8+30; for(i=a;i<5;i++) { b=booknumber-a; double e=fa(a); double f=fa(b); if (e*a*8+f*b*8<sum) sum=e*a*8+f*b*8; } cout<<sum; } else g=booknumber%5; j=booknumber/5; double k=fa(g); sum=j*30+k*8*g; cout<<sum; }
四.截圖
五.實驗總結這種
這次試驗應該說是不太難,只要分成3種情況就行,關鍵是6-7的這種情況,必須考慮到每一種情況。這種情況可以用switch語句,和迴圈解決。程式的關鍵是把實際問題抽象成為數學問題再用程式實現,只要想到每一種情況,解決好就行。