硬币兑换问题:

给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少。

# 动态规划思想 dp方程式如下

# dp[0] = 0

# dp[i] = min{dp[i - coins[j]] + 1}, 且 其中 i >= coins[j], 0 <= j < coins.length

# 回溯法,输出可找的硬币方案

# path[i] 表示经过本次兑换后所剩下的面值,即 i - path[i] 可得到本次兑换的硬币值。

def changeCoins(coins, n):

if n < 0: return None

dp, path = [0] * (n+1), [0] * (n+1) # 初始化

for i in range(1, n+1):

minNum = i # 初始化当前硬币最优值

for c in coins: # 扫描一遍硬币列表,选择一个最优值

if i >= c and minNum > dp[i-c]+1:

minNum, path[i] = dp[i-c]+1, i - c

dp[i] = minNum # 更新当前硬币最优值

print('最少硬币数:', dp[-1])

print('可找的硬币', end=': ')

while path[n] != 0:

print(n-path[n], end=' ')

n = path[n]

print(n, end=' ')

if __name__ == '__main__':

coins, n = [1, 4, 5], 22 # 输入可换的硬币种类,总金额n

changeCoins(coins, n)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python 硬币兑换问题

本文地址: http://www.cppcns.com/jiaoben/python/266971.html

python123外汇兑换程序_Python 硬币兑换问题相关推荐

  1. python美元和人民币双向兑换程序_Python:程序练习题(二)

    Python:程序练习题(二) 2.1温度转换程序. 代码如下: t=input("请输入带符号的温度值(如:32C):") if t[-1] in ["C", ...

  2. python换硬币_Python 硬币兑换问题

    硬币兑换问题: 给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少. # 动态规划思想 dp方程式如下 # dp[0] = 0 # dp[i] ...

  3. 程序员的算法趣题Q05: 硬币兑换

    目录 1. 问题描述 2. 递推表达式 3. 代码及测试 1. 问题描述 本题来自<程序员的算法趣题>中的第5题. 公交车上的零钱兑换机可以将纸币兑换成10日元.50日元.100日元和50 ...

  4. PTA_Python3_人民币与美元汇率兑换程序

    设计人民币与美元汇率兑换程序,按照1美元=7人民币的汇率 编写一个双向兑换程序. 输入格式: 输入美元或者人民币的金额,币种在前,金额在后,如:$20.¥100.每次输入一个金额. 输出格式: 输出经 ...

  5. 硬币兑换方案总数(动态规划)

    视频链接:求硬币兑换的方案数的分析步骤_哔哩哔哩_bilibili ①题目: ②思路: ③代码(DP数组右下角的那个数就是方案数): import pandas as pd# S = 4 # coin ...

  6. python汇率兑换程序。按照温度转换程序的设计思路,按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.问题? 二.使用步骤 代码 总结 前言 python汇率兑换程序.按照温度转换程序的设计思路,按照1美元=6人民币 ...

  7. 完全背包问题Leecode322零钱兑换和Leecode518零钱兑换||

    文章目录 Leecode 322零钱兑换 Leecode 518零钱兑换II Leecode 322零钱兑换 题目大意 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ...

  8. python123外汇兑换程序,货币兑换程序python

    我正在制作一个三明治店的程序,用户要求三明治,然后程序告诉你改变. 我是python新手,我对它有一点了解.在 这是我的代码:print "Welcome to the sandwich s ...

  9. python123外汇兑换计算器_python day03习题

    1.有变量name='aleXleNb'完成如下操作: 1)移除name变量对应的值两边的空格,并输出结果. print(name.strip()) 2)移除name变量左边的'al',并输出处理结果 ...

最新文章

  1. 关键词排名下降怎么办-优八学院给你支招
  2. 图像分类:13个Kaggle项目的经验总结
  3. php 给图片增加背景平铺水印代码
  4. 第三章 Git使用入门 心得笔记
  5. sealos kubernetes(k8s)高可用安装教程
  6. 浏览器打开位置服务器,如何启动http服务器,然后打开web浏览器?
  7. 2 MM配置-企业结构-定义-定义工厂代码
  8. 怎么查看表用了那个序列_知识分享008:怎样在手机上用萤石云查看海康威视监控录像...
  9. VC字体对话框的初始化
  10. vue filters使用
  11. oracle字符串转日期比较大小写,【varchar】oracle中比较日期大小日期定义的是varchar2类型的......
  12. php高校学生户籍档案管理系统
  13. linux 如何进入bios设置密码,linux系统怎么不输入密码得到系统的BIOS...-卓优商学院问答...
  14. SpringMVC、Struts1和Struts2区别
  15. 手机投屏到电脑的5种方式,你学到了吗!
  16. 关于计算机信息管理专业教学改革的相关文章,计算机信息管理专业论文范文
  17. 如何通过划分VLAN,有效规划企业网ip地址!
  18. python3 + Scrapy爬虫学习之创建项目
  19. lterator,Listlterator
  20. [转]黑客入侵应急分析手工排查

热门文章

  1. 2 算术运算指令【微机原理】
  2. 穿越火线启动闪退、WeGame修复无效显示网络异常、Client MFC Application闪退、穿越火线游戏内乱码
  3. 苹果悬浮球_苹果iPhone X关闭静音模式振动功能的操作方法_教程_新闻_【生意多】...
  4. farpoint支持python_FarPoint Spread for Windows Forms
  5. BIOS实战之MIPI屏的配置
  6. 用sumproduct函数计算组内排名
  7. 利用Python进行破解哔哩哔哩登录
  8. vc网页html,vc 获取网页内容(HTTP)
  9. 图形化桌面环境中的shell脚本编程
  10. Git版本控制:GitMojo及常用DOS命令