我有10张,20张,50张钞票,当我需要支付任何金额时,我需要找到最好的组合。例如,当我需要付7英镑时,我会付5英镑和2英镑的钞票

我有一个函数可以计算这个。但我需要运行同一个函数3到4次,如下所示。如何递归调用函数?在my_dir={}

import bisect

def my_change(my_amount):

c=[1,2,5,10,20,50,100,500]

my_pos=bisect.bisect(c, my_amount)

my_val=c[my_pos-1]

my_num=my_amount//my_val

my_recurr=my_amount-(my_num*c[my_pos-1])

my_dir[my_val] = my_num

return my_recurr

有没有更好的计算方法?在

^{pr2}$

更新:

根据可用的情况,组合可能会改变!在

^{3}$

应导致:actual_pay={1:1, 2: 3, 10: 1, 50:6, 100: 1}

更新:

有没有更好的编码方法?在amt=417

my_dict={}

available_cash={1:20, 2:10, 10:100, 50:100, 100:1, 500:1}

new_list=sorted(available_cash, reverse=True)

for key in new_list:

if amt >= key * available_cash[key]:

my_dict[key] = available_cash[key]

amt = amt - (key * available_cash[key])

else:

if amt >= key:

notes = amt // key

amt = amt - (key * notes)

my_dict[key] = notes

更新1:

如果我需要在付款后找到自动取款机里的钞票,我可以用柜台from collections import Counter

A = Counter(available_cash)

B = Counter(my_dict)

A - B

Counter({10: 99, 50: 94, 1: 19, 2: 7, 500: 1})

python函数可以递归调用吗_递归调用函数相关推荐

  1. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  2. 汉诺塔递归的空间复杂度_递归思维——快速排序的详细设计过程

    理解递归的运行模型(https://zhuanlan.zhihu.com/p/166173378)之后,就能根据递归函数的静态代码推算执行结果了. 递归思维,是理解递归的基础上,用递归研究并解决问题的 ...

  3. python如何调用文件_如何调用另一个python文件中的代码

    原博文 2017-07-10 15:56 − 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另 ...

  4. 箭头函数的this指向谁_高阶函数

    NodeJS 系列文章,本篇是第一篇,首先,预计将后续高频使用逻辑串一遍,依次是高阶函数,promise以及事件机制.本篇主要是高阶函数. call.bind.apply call.apply 都是改 ...

  5. 函数的凹凸性证明_判断复杂函数的凹凸性

    判断无人机能量x关系函数的凹凸性(函数是关于v和drt的二元函数) 函数有非常多的参数,极其复杂,看到就烦,我首先用画函数的方法通过图像法来观察,但是画出来的图像不忍直视(或许是我画的图像不对,反正看 ...

  6. 函数计算的是什么_【Excel函数教程】3个例子让你彻底玩转EDATE函数

    在日常的工作中,我们经常需要计算各种到期时间. 比如HR,就需要计算合同到期日.退休到期日.员工转正日期等. 生产或销售人员,需要关注产品的有效期等等-- 如果你不知道EDATE函数的话,可能这类问题 ...

  7. python将10到1递减_递归地将列表递减1

    不管怎样,这是学习递归的一种糟糕的方法,因为你用它来做一些本质上不是递归的事情.如果你的老师真的要你写一个程序,让列表中的元素递归地递减,那就让他/她感到羞耻.在 正如Haidro所指出的,解决这个问 ...

  8. 斐波那契递归调用次数_递归求解斐波那契数列的时间复杂度——几种简洁证明...

    TL:DR: 暴力递归求解斐波那契数列的时间复杂度的紧界不是 ,而是 . 本文将给出几个简洁证明 用最暴力的方法求解斐波那契数列,时间复杂度是多少?具体地说,就是求下面这个程序的复杂度: def fi ...

  9. python调用窗口_如何调用一个函数并在另一个窗口中打开?

    我用的是IDLE,但这应该足够让球滚动了.IDLE是在Windows上下载Python时随Python一起安装的IDE.您可以通过按Windows键并搜索空闲来打开它.在 这段代码很简单,但是它应该能 ...

最新文章

  1. 区块链概念:Hash 算法
  2. inaflash什么意思中文_英文“flash”翻译成中文是什么意思?
  3. AI理论知识整理(10)-向量空间与矩阵(1)
  4. Iphone代码创建视图
  5. 简单参数让谷歌Chrome浏览器单进程运行
  6. div+CSS编程技巧
  7. jmx客户端_Java JMX客户端示例– JMX身份验证
  8. 5款开源BI系统倾力推荐,企业信息化的利器
  9. 视频编辑 ae pr 区别
  10. java pos58打印_POS58小票打印机
  11. ae2018怎么打开2019_AE CC 2019新功能全面解析!
  12. java通过winrm实现remote powershell
  13. 表达式的LenB(123程序设计ABC)的值是
  14. 各种光流算法介绍和原理
  15. 简单暴力的排序方式:直接排序
  16. golang 大数据平台_Golang在Momenta大数据平台当中的应用
  17. 数据集处理(三)——打乱数据集
  18. 3000亿美元的东南亚数码经济为企业创造增长机会,也带来更大的欺诈风险 | 美通社头条...
  19. python伪装浏览器https_Selenium中通过修改User-Agent标识将PhantomJS伪装成Chrome浏览器...
  20. 计算机教师个人业绩成果自述,申报中学信息技术高级教师职称晋升个人业绩成果自述.docx...

热门文章

  1. 依赖声明可以包含的元素
  2. 数据存储-传输-分析
  3. POJ 1095 Trees Made to Order
  4. Python入门教程丨1300多行代码,让你轻松掌握基础知识点
  5. js时间搓化为今天明天_做猪皮冻,记住“泡一泡,刮一刮,搓一搓”,皮冻晶莹剔透无异味...
  6. 只能发邮件不能接受_《GTA5》R星发邮件问候玩家会发生什么?以下操作一个也别碰...
  7. java反编译工具_移动app安全测试 - 客户端 - 反编译保护
  8. html5模板 制作,优秀的H5作品是如何炼成的?模板制作详解!
  9. sap系统搭建教程_SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户...
  10. android对象识别实验报告,Android 3相册实验报告.doc