python123外汇兑换程序_Python 硬币兑换问题
硬币兑换问题:
给定总金额为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 硬币兑换问题相关推荐
- python美元和人民币双向兑换程序_Python:程序练习题(二)
Python:程序练习题(二) 2.1温度转换程序. 代码如下: t=input("请输入带符号的温度值(如:32C):") if t[-1] in ["C", ...
- python换硬币_Python 硬币兑换问题
硬币兑换问题: 给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少. # 动态规划思想 dp方程式如下 # dp[0] = 0 # dp[i] ...
- 程序员的算法趣题Q05: 硬币兑换
目录 1. 问题描述 2. 递推表达式 3. 代码及测试 1. 问题描述 本题来自<程序员的算法趣题>中的第5题. 公交车上的零钱兑换机可以将纸币兑换成10日元.50日元.100日元和50 ...
- PTA_Python3_人民币与美元汇率兑换程序
设计人民币与美元汇率兑换程序,按照1美元=7人民币的汇率 编写一个双向兑换程序. 输入格式: 输入美元或者人民币的金额,币种在前,金额在后,如:$20.¥100.每次输入一个金额. 输出格式: 输出经 ...
- 硬币兑换方案总数(动态规划)
视频链接:求硬币兑换的方案数的分析步骤_哔哩哔哩_bilibili ①题目: ②思路: ③代码(DP数组右下角的那个数就是方案数): import pandas as pd# S = 4 # coin ...
- python汇率兑换程序。按照温度转换程序的设计思路,按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.问题? 二.使用步骤 代码 总结 前言 python汇率兑换程序.按照温度转换程序的设计思路,按照1美元=6人民币 ...
- 完全背包问题Leecode322零钱兑换和Leecode518零钱兑换||
文章目录 Leecode 322零钱兑换 Leecode 518零钱兑换II Leecode 322零钱兑换 题目大意 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ...
- python123外汇兑换程序,货币兑换程序python
我正在制作一个三明治店的程序,用户要求三明治,然后程序告诉你改变. 我是python新手,我对它有一点了解.在 这是我的代码:print "Welcome to the sandwich s ...
- python123外汇兑换计算器_python day03习题
1.有变量name='aleXleNb'完成如下操作: 1)移除name变量对应的值两边的空格,并输出结果. print(name.strip()) 2)移除name变量左边的'al',并输出处理结果 ...
最新文章
- 关键词排名下降怎么办-优八学院给你支招
- 图像分类:13个Kaggle项目的经验总结
- php 给图片增加背景平铺水印代码
- 第三章 Git使用入门 心得笔记
- sealos kubernetes(k8s)高可用安装教程
- 浏览器打开位置服务器,如何启动http服务器,然后打开web浏览器?
- 2 MM配置-企业结构-定义-定义工厂代码
- 怎么查看表用了那个序列_知识分享008:怎样在手机上用萤石云查看海康威视监控录像...
- VC字体对话框的初始化
- vue filters使用
- oracle字符串转日期比较大小写,【varchar】oracle中比较日期大小日期定义的是varchar2类型的......
- php高校学生户籍档案管理系统
- linux 如何进入bios设置密码,linux系统怎么不输入密码得到系统的BIOS...-卓优商学院问答...
- SpringMVC、Struts1和Struts2区别
- 手机投屏到电脑的5种方式,你学到了吗!
- 关于计算机信息管理专业教学改革的相关文章,计算机信息管理专业论文范文
- 如何通过划分VLAN,有效规划企业网ip地址!
- python3 + Scrapy爬虫学习之创建项目
- lterator,Listlterator
- [转]黑客入侵应急分析手工排查
热门文章
- 2 算术运算指令【微机原理】
- 穿越火线启动闪退、WeGame修复无效显示网络异常、Client MFC Application闪退、穿越火线游戏内乱码
- 苹果悬浮球_苹果iPhone X关闭静音模式振动功能的操作方法_教程_新闻_【生意多】...
- farpoint支持python_FarPoint Spread for Windows Forms
- BIOS实战之MIPI屏的配置
- 用sumproduct函数计算组内排名
- 利用Python进行破解哔哩哔哩登录
- vc网页html,vc 获取网页内容(HTTP)
- 图形化桌面环境中的shell脚本编程
- Git版本控制:GitMojo及常用DOS命令