硬币问题
问题描述:
有1元,5元,10元,50元,100元若干枚,现在要用这些硬币来支付A元。最少需要多少枚硬币呢?假设至少存在一种方案。
贪心思想:
很正常的想,我们自然想要先用100块,直到不能再用,然后用50元。依次进行下去。
正确性:
不妨我们假设利用贪心思想得到的各个硬币的使用个数为a1,a2,a3,a4,a5.现假设有更少的选择,不妨设为b1,b2,b3,b4,b5.即
b1+b2+b3+b4+b5<a1+a2+a3+a4+a5
而且我们有
b1+b2*5+b3*10+b4*50+b5*100=A
a1+a2*5+a3*10+a4*50+a5*100=A
那么
从另一个角度考虑,如果我不把当前可选的最大面值的选到最大个数,不妨假设现在可选5张100,但选了4张100,那么这剩下的100必须用剩下的来拼,肯定用的张数要大于1,那么我就必须选最多。依次进行下去。