找零钱最佳组合 题目:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客的最少货币个(张)数?(货币面值50元,10元,5元,1元四种)结合等价类划分法和边界值分析法设计测试用例
时间: 2024-01-13 15:05:04 浏览: 174
首先我们可以使用等价类划分法将所有的输入值划分为以下几个等价类:
1. P小于R,即不需要找零钱。
2. P等于R。
3. P大于R,但是找零钱的面值组合中不包含50元纸币。
4. P大于R,但是找零钱的面值组合中包含50元纸币,但不包含10元纸币。
5. P大于R,但是找零钱的面值组合中包含50元和10元纸币,但不包含5元硬币。
6. P大于R,但是找零钱的面值组合中包含50元、10元和5元,但不包含1元硬币。
7. P大于R,同时找零钱的面值组合中包含50元、10元、5元和1元硬币。
接下来,我们使用边界值分析法设计测试用例。根据题目中的限制,我们可以确定P和R的边界值:
1. P = 1,R = 1。
2. P = 100,R = 100。
3. P = 100,R = 99。
4. P = 100,R = 50。
5. P = 100,R = 55。
6. P = 100,R = 57。
7. P = 100,R = 63。
8. P = 10,R = 5。
9. P = 55,R = 50。
10. P = 57,R = 50。
根据这些边界值,我们可以设计出以下测试用例:
| 测试编号 | P | R | 期望输出 |
| -------- | ---- | --- | -------- |
| 1 | 1 | 1 | 0 |
| 2 | 100 | 100 | 0 |
| 3 | 100 | 99 | 1 |
| 4 | 100 | 50 | 1 |
| 5 | 100 | 55 | 2 |
| 6 | 100 | 57 | 3 |
| 7 | 100 | 63 | 4 |
| 8 | 10 | 5 | 1 |
| 9 | 55 | 50 | 1 |
| 10 | 57 | 50 | 2 |
通过这些测试用例,我们可以验证程序在各种情况下的正确性,确保其能够找出最少的货币个数。
阅读全文