用递归的方式解决找零钱问题。
能够理解递归,但是加一个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返回值:为什么没有对每一个分支的解作比较