最低价格

题目概要:《哈利波特》系列书籍共5部,单买每本8元,2本一套买(各不相同为一套,下同),享5%的优惠,以此类推,3本10%,4本20%,5本25%。

要求:输入要买的书籍,求出最优购买策略,并求出最低价格。
#include<iostream> using namespace std; void main() { double a,b; int n; cout<<"请输入要购买书籍的总数:"<<endl; cin>>n; a=n/5; b=n%5; if(b==3&&a>0) { if(a-1>0) { cout<<"最合理的购买方式为:"<<"买"<<a-1<<"整套,"; } cout<<"买2套各不相同的4本"<<endl; cout<<"最低价为:"<<40*0.75*(a-1)+32*0.8*2<<"元"<<endl; } else { if(a>0) { cout<<"最合理的购买方式为:"<<"买"<<a<<"整套,"; } if(b>0) { cout<<",买1套各不相同的"<<b<<"本"<<endl; } double c; if(b==2) c=40*a*0.75+16*0.95; if(b==3) c=40*a*0.75+24*0.9; if(b==4) c=40*a*0.75+32*0.8; cout<<"最低价为:"<<c<<"元"<<endl; } }
思路:思路是课上大家一起总结出来的,简单来说就是一般情况下,整套来买即5部一起买最省钱。但有一种特殊情况,就是当要买8本时,不符合一般情况,而是买两套4本更便宜。
也就是说,当要买X本书时,应尽量多的买5本套装,剩下余8本时,按2套4本套装买。当然少于5本时,按各不相同的套装买最便宜。
感悟:额,昨天忘记发了,罪大了。。。买东西真是得多想想,不细想真不会发现其中的玄机,我就没发现8本的空档。还是得多发现多思考,才能有收获。
原文地址:https://www.cnblogs.com/xiaowumao/p/4504604.html