一.设计思路
1.在主函数中输入购买书的数量;
2.调用计算函数将购买的书的数量作为参数传递;
3.在计算函数中给出折扣信息以及5本书以下的最低费用;
4.由思考得知,1到10本书的最低费用是不同的计算,10本之后的最低费用计算都是在前10本书最低费用的基础上进行计算的;
5.用switch将情况分为10类,计算最低费用;
6.在主函数中输出所求得的最低费用。
二.代码实现
1 #include<iostream> 2 using namespace std; 3 4 double GetLowestPrice(int number) 5 { 6 double lowestprice; //最低费用 7 double price = 8; //单价 8 double discount[5] = { 0, 0.05, 0.1, 0.2, 0.25 }; //买1,2,3,4,5本书各自的折扣 9 int group = number / 10; //number除以10的商(每10本一组) 10 int values = number % 10; //number除以10的余数 11 double base = 5 * 2 * (1 - discount[4]) * 8 * group; //买10的整数倍本书的最低价格 12 double price2 = price * 2 * (1 - discount[1]); //买两本书的最低价格 13 double price3 = price * 3 * (1 - discount[2]); //买三本书的最低价格 14 double price4 = price * 4 * (1 - discount[3]); //买四本书的最低价格 15 double price5 = price * 5 * (1 - discount[4]); //买五本书的最低价格 16 switch (values) 17 { 18 case 0: 19 lowestprice = base; break; 20 case 1: 21 lowestprice = base + price; break; 22 case 2: 23 lowestprice = base + price2; break; 24 case 3: 25 lowestprice = base + price3; break; 26 case 4: 27 lowestprice = base + price4; break; 28 case 5: 29 lowestprice = base + price5; break; 30 case 6: 31 lowestprice = base + price + price5; break; 32 case 7: 33 lowestprice = base + price2 + price5; break; 34 case 8: 35 lowestprice = base + price4 + price4; break; 36 case 9: 37 lowestprice = base + price4 + price5; 38 } 39 return lowestprice; 40 } 41 42 int main() 43 { 44 int number; //书的数量 45 double LowestPrice; //所购书的最低价 46 cout << "请输入要购买的书的数量:"; 47 cin >> number; 48 LowestPrice = GetLowestPrice(number); 49 cout << "购买" << number << "本书所花的最低费用是:" << LowestPrice << "元!"; 50 return 0; 51 }
三.测试结果
四.总结
此次试验只要发现了每十个为一组的规律后,实验就非常简单了。
时间: 2024-10-22 03:58:11