題目:
書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編号0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:
本數 折扣
2 5%
3 10%
4 20%
5 25%
根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書隻會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。請設計算法能夠計算出讀者購買一批書的最低價格。
思路:
通過計算6-10本方案容易總結出規律,即當買的本書為8時應4+4方案,其他都是5+1/2/4/5模式方案最佳,進而得出當購買圖書大于5本且餘數為3時采用5的倍數加8方案購買,其他為5的倍數加餘數方案。
代碼:
#include <iostream>
using namespace std;
void main()
{
int a,b,c;
double d;
cout<<"請輸入要購買的書數: ";
cin>>a;
b=a%5;
c=a/5;
if(b==0)
d=c*5*8*0.75;
if(b==1)
d=c*5*8*0.75+b*8;
if(b==2)
d=c*8*5*0.75+b*8*0.95;
if(b==3&&a>5)
d=(c-1)*5*8*0.75+4*8*0.8*2;
if(b==3&&a<5)
d=3*8*0.9;
if(b==4)
d=c*5*8*0.75+b*0.8*8;
cout<<"最少錢數為:"<<d<<endl;
}
截圖:

總結:
本次作業相對簡單但考察我們發現規律的能力,通過本次的作業可以讓我們學到好多的題目存在它相應的運算規律,當我們遇到正常方法解決不了的問題時可以觀察題目的規律。是否能用找規律求解的的方法解決。