實例:找零錢最佳組合
題目:假設商店貨品價格(R)皆不大於100元(且為整數),若顧客付款在100元內(P),求找給顧客的最少貨幣個(張)數?(貨幣面值50元,10元,5元,1元四種)
題目分析:設四種貨幣的張數分別為n50、n10、n5、n1(均為整數)它們的值即為結果。
1)輸入情況有R>100, 0<R<=100, 0<R, P>100, R<=P<=100, P<R。
2)輸出情況有n50=1||0, 0<= n10 <5, n5=1||0, 0<= n1 <5。
3)測試實例(R,P)有
編號 | R | P | 預期輸出結果 |
1 | 101 | 102 | 非法輸入 |
2 | 101 | 101 | 非法輸入 |
3 | 101 | 100 | 非法輸入 |
4 | 101 | 99 | 非法輸入 |
5 | 100 | 101 | 非法輸入 |
6 | 100 | 100 | n50=0,n10=0,n5=0,n1=0 |
7 | 100 | 99 | 非法輸入 |
8 | 50 | 101 | 非法輸入 |
9 | 50 | 100 | n50=1,n10=0,n5=0,n1=0 |
10 | 50 | 99 | n50=0,n10=4,n5=1,n1=4 |
11 | 50 | 75 | n50=0,n10=2,n5=1,n1=0 |
12 | 50 | 51 | n50=0,n10=0,n5=0,n1=1 |
13 | 50 | 50 | n50=0,n10=0,n5=0,n1=0 |
14 | 50 | 49 | 非法輸入 |
15 | 0 | 101 | 非法輸入 |
16 | 0 | 100 | 非法輸入 |
17 | 0 | 50 | 非法輸入 |
18 | 0 | 0 | 非法輸入 |
19 | 0 | -1 | 非法輸入 |
20 | -1 | 101 | 非法輸入 |
21 | -1 | 100 | 非法輸入 |
22 | -1 | 50 | 非法輸入 |
23 | -1 | -1 | 非法輸入 |
24 | -1 | -2 | 非法輸入 |
本例采用的是最壞情況測試,因為兩個變量中P變量的邊界是隨着R變化而變化的,因此在測試中先確定R的取值,然后在此基礎上對P的取值進行分析。由於采用最壞情況測試,出現了比較多的非法輸入。其實這些非法輸入可以根據R的值分成三個等價類非別是R>100, 0<R<=100, R<=0,在此為了展示所有情況,所以列出了所有可能的操作。