实验题目
每本是8块钱
买不同的书可以有优惠
1 0
2 5%
3 10%
4 20%
5 25%
购买N本书,最少可花多少钱?
实验思想
下为购买不同书的最佳购买方案。
1 8 Price
2 15.2 Price*2*(1-0.05)
3 21.6 Price*3*(1-0.1)
4 25.6 Price*4*(1-0.2)
5 30 Price*5*(1-0.25)
6 可为 1,5(38) 2,4(40.6) 3,3(43.2)
7 可为 2,5(35.2) 3,4(47.2)
8 可为 3,5(51.6) 4,4(51.2)
9 可为 4,5(55.6)
10可为 5,5(60)
11以后与1-10 方案大致相同
实验代码
1 #include <iostream> 2 using namespace std; 3 #define Price 8 4 void main() 5 { 6 int Num; //购买的 7 cout<<"请输入购买的数量:"; 8 cin>>Num; 9 if(Num<=0) 10 { 11 cout<<"输入错误,请输入大于0的数。"; 12 } 13 else 14 { 15 cout<<"最佳购买方案为:"<<endl; 16 double Sum=0; //需要的钱数 17 if(Num%10==8) //判断除10余数为8的话,则为商*(Price*5*(1-0.25)*2)+ (Price*5*(1-0.25)+Price*3*(1-0.1)) 8为(4+4) 18 { 19 Sum+=Num/10*Price*5*(1-0.25)*2+Price*4*(1-0.2)+Price*4*(1-0.2); 20 if(Num/10!=0) 21 { 22 cout<<"买"<<Num/10*2<<"个5本,"; 23 } 24 cout<<"2个4本"<<endl; 25 cout<<"最少可花的钱为:"<<Sum<<endl; 26 } 27 else 28 { 29 Sum+=Num/5*Price*5*(1-0.25); 30 if(Num/5!=0) 31 { 32 cout<<"买"<<Num/5<<"个5本"<<endl; 33 } 34 else if(Num%5!=0) 35 { 36 cout<<"1个"<<Num%5<<"本"<<endl; 37 } 38 switch(Num%5) 39 { 40 case 1: 41 Sum+=Price; 42 break; 43 case 2: 44 Sum+=Price*2*(1-0.05); 45 break; 46 case 3: 47 Sum+=Price*3*(1-0.1); 48 break; 49 case 4: 50 Sum+=Price*4*(1-0.2); 51 break; 52 case 5: 53 Sum+=Price*5*(1-0.25); 54 break; 55 } 56 cout<<"最少可花的钱为:"<<Sum<<endl; 57 } 58 } 59 }
实验截图
时间: 2024-10-07 07:07:02