递归 解决 找零钱问题。。。。。??

用递归的方式解决找零钱问题。

能够理解递归,但是加一个for循环就蒙了。

同时不太清楚此时的return返回情况。

debug 也比较懵逼,没太理解。

金钱总额M=4 面额分别为3,1


def RecursiveChange(M, c):
    if M == 0:
        return 0

    bestNumCoins = 1000
    for miane in c:
        if M>=miane:
            # print("面额:%d" %miane)
            numCoins = RecursiveChange(M-miane, c)

            if numCoins + 1 < bestNumCoins:
                bestNumCoins = numCoins+1
    # print("bestnum:%d"%bestNumCoins)          
    return bestNumCoins

if __name__ == "__main__":
    print(RecursiveChange(4,[ 3, 1]))

提问:
1. 比较bestNumCoins的意义是啥
2. return返回值:为什么没有对每一个分支的解作比较

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐