1,题目
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 |
折扣 |
2 |
5% |
3 |
10% |
4 |
20% |
5 |
25% |
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
2,思路
通过如下计算:
本数 |
优惠价格 |
本数 |
优惠价格 |
1 |
8 |
6 |
30+8=38 |
2 |
15.2 |
7 |
30+15.2=45.2 |
3 |
21.6 |
8 |
30+25.6*2=51.2 |
4 |
25.6 |
9 |
30+25.6=55.6 |
5 |
30 |
10 |
30*2=60 |
可得规律是:当数量超过一套时,优先一套购买。其中若大于5本且多出3本构成8余数的,优惠价格要按照(n/5-1)*8*0.75+25.6*2单独来算。
3,代码
#include<iostream> using namespace std; void main() { int n,k,j; double m; a: cout << "输入购买书的数量:"; cin >> n; k = n % 5; k = k + 5; switch (k) { case 5: m = n * 8 * 0.75; break; case 6: m = (n - 1) * 8 * 0.75 + 8; break; case 7: m = (n- 2) * 8 * 0.75 + 8 * 2 * 0.95; break; case 8: m = (n - 8) * 8 * 0.75 + 4 * 8 * 0.8 * 2; break; case 9: m = (n - 4) * 8 * 0.75 + 8 * 4 * 0.8; break; } cout << "购买"<<n<<"本书最折扣的价格是:"<<m << endl; cout << "******************************" << endl; cout << "是否继续?"<<endl; cout<<"继续请输入1,退出输入0" << endl; cin >> j; cout << "*******************" << endl; switch (j) { case 0: cout << "退出!"; break; case 1: goto a; break; } }
4,截图
5,总结
编程就是运用数学的方式方法将事件抽象化来进行计算。尤其是找规律,就可以运用编程中的循环来节省步骤。
一直不能将数学思维和变成很好的联系起来,其实这两者是密不可分,相辅相成的。运用数学和程序进行沟通就会简单很多。
时间: 2025-01-07 00:50:09