是输出出格式不对吗?改成这样试试
print(i, j, k, sep=',')
coins = [1, 2, 5] # 硬币面值
num_coins = [10, 10, 10] # 每种硬币数量
def exchange(amount, coin_index):
if amount == 0: # 如果兑换金额为0,说明已经找到一种兑换方法
print(num_coins)
return
if coin_index >= len(coins): # 如果硬币面值已经遍历完,说明无法兑换成功
return
max_num = min(amount // coins[coin_index], num_coins[coin_index]) # 计算当前硬币最多可以使用的数量
# print(max_num)
for i in range(max_num, -1, -1): # 从最多使用数量开始遍历
num_coins[coin_index] -= i # 使用i个当前硬币
exchange(amount - i * coins[coin_index], coin_index + 1) # 递归处理剩余金额和下一个硬币面值
num_coins[coin_index] += i # 回溯,恢复当前硬币数量
print(num_coins)
exchange(100, 0) # 兑换1元
看着好像没有问题,手敲了一遍,可以运行,结果也正确。
count=0
for i in range(10,31):
for j in range(10,21):
for k in range(10,15):
if i+2*j+5*k==100:
count = count+1
print(i,j,k)
print(count)