Python Coin change SO CLOSE

前端 未结 1 385
有刺的猬
有刺的猬 2020-12-06 15:57

I am doing the coin-change problem. I have finished the problem in that it prints out how many coins I need to make the least amount of change possible, but how do I change

相关标签:
1条回答
  • 2020-12-06 16:27

    A different version of your program:

    def change(C, V, res=None):
        res = [] if res is None else res
        if len(V) == 0:
            return len(res), res
        maxx = max(V)
        V.remove(maxx)
        ans = C//maxx
        if ans == 0 and maxx < C :
            res += [maxx] * ans
            return len(res), res
        else:
            res += [maxx] * ans
            return  change(C % maxx, V, res)
    
    print change(48,[1, 5, 10, 25, 50])
    print change(30,[25, 10, 2, 3, 1])
    

    output:

    (6, [25, 10, 10, 1, 1, 1])
    (3, [25, 3, 2])
    

    PS: I'll add an explanation if you want.

    0 讨论(0)
提交回复
热议问题