天天看點

購書問題

題目:

書店針對《哈利波特》系列書籍進行促銷活動,一共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;
}
      

  

截圖:

購書問題

總結:

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

上一篇: 找“水王”
下一篇: history對象