3.假设1元、2元、5元、10元、20元、50元、100元的纸币分别有100,100, 100, 100, 50, 50, 50张。现在要用这些钱来支付666元,至少要用多少张纸币?
时间: 2023-05-31 15:19:08 浏览: 204
### 回答1:
根据题意:
1元纸币:100张
2元纸币:100张
5元纸币:100张
10元纸币:100张
20元纸币:50张
50元纸币:50张
100元纸币:50张
所以,总共有:
1元纸币:100 x 1 = 100 元
2元纸币:100 x 2 = 200 元
5元纸币:100 x 5 = 500 元
10元纸币:100 x 10 = 1000 元
20元纸币:50 x 20 = 1000 元
50元纸币:50 x 50 = 2500 元
100元纸币:50 x 100 = 5000 元
合计:100 + 200 + 500 + 1000 + 1000 + 2500 + 5000 = 12300 元
要用这些钱来支付666元,最少需要使用2张50元纸币和1张10元纸币,共计60元,还需要支付的金额为606元。
因此,最少需要使用1张100元纸币、1张50元纸币、2张20元纸币、1张10元纸币、1张5元纸币和1张1元纸币,共计7张纸币。
### 回答2:
这个问题是一个典型的贪心算法问题。我们可以从大到小枚举纸币面额,每次选择当前面额最大的纸币来支付。
首先我们可以使用100元的纸币支付尽可能多的金额,最多使用6张100元纸币,还剩下266元需要支付。然后我们使用50元的纸币支付尽可能多的金额,最多使用5张50元纸币,还剩下16元需要支付。
接下来我们使用10元的纸币支付,需要支付1张10元纸币和6张1元纸币。最后使用1元纸币支付剩余的6元,需要支付6张1元纸币。
所以总共需要使用6+5+1+6=18张纸币来支付666元。其中,使用6张100元纸币,5张50元纸币,1张10元纸币和6张1元纸币。
我们可以使用贪心算法来解决这个问题,不同的面额纸币使用数量最优的情况下,可以保证总数量最少。
### 回答3:
首先,最直观的思路是使用面额最大的纸币,即使用100元纸币。但是这样需要使用7张100元纸币才能凑够666元,此时还剩余34元。
接着,可以考虑使用50元纸币,用一张50元纸币可以凑成116元,共需要使用3张50元纸币,此时还剩余16元。
然后可以使用20元纸币,用一张20元纸币可以凑成136元,需要使用8张20元纸币,此时还剩余12元。
继续使用10元纸币,用一张10元纸币可以凑成146元,需要使用1张10元纸币,此时还剩余2元。
接下来使用2元纸币,用一张2元纸币可以凑成148元,需要使用2张2元纸币,此时还剩余0元。
最后使用1元纸币,用一张1元纸币可以凑成149元,需要使用1张1元纸币,此时刚好凑满666元,共需要使用15张纸币。
综上,至少需要用15张纸币来支付666元。