java动态规划找零,找零兑换-动态规划算法

动态规划算法def dpMakeChange(coin_value_li,change,min_coins,coins_used):

"""

:param coin_value_li: 币值的列表

:param change: 需要找零的价格

:param min_coins: 列表

:param conis_used: 列表

:return:

"""

for cents in range(change+1):

coin_count=cents

new_coin=1

for j in [c for c in coin_value_li if c<=cents]:

if min_coins[cents-j] +1 

coin_count=min_coins[cents-j] +1

new_coin = j

min_coins[cents] = coin_count

coins_used[cents]=new_coin

return min_coins[change]

def printCoins(coins_used,change):

coin=change

while coin >0:

this_coin=coins_used[coin]

print(this_coin)

coin=coin-this_coin

amnt=63

coin_li=[1,5,10,21,25]

coin_used=[0]*(amnt+1)

coin_count=[0]*(amnt+1)

print(f'需要找零兑换:{amnt}')

print(dpMakeChange(coin_li,amnt,coin_count,coin_used),'coins')

printCoins(coin_used,amnt)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值