Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “拆分”;邮票「;四分之一,十,五,二和一_Python_Algorithm - Fatal编程技术网

Python “拆分”;邮票「;四分之一,十,五,二和一

Python “拆分”;邮票「;四分之一,十,五,二和一,python,algorithm,Python,Algorithm,我最近解决了一个问题,用尽可能少的硬币分割邮票(以货币表示的金额)。该函数获取金额并返回金额的分割,尽可能少地使用硬币 def stamps(num): quarter = num / 25 ten = (num % 25) / 10 five = (num % 10) / 5 two = (num % 5) / 2 one = (num % 2) return quarter, ten, five, two, one 所有的硬币都很好,但是

我最近解决了一个问题,用尽可能少的硬币分割邮票(以货币表示的金额)。该函数获取金额并返回金额的分割,尽可能少地使用硬币

def stamps(num):
    quarter = num / 25 
    ten = (num % 25) / 10
    five = (num % 10) / 5
    two = (num % 5) / 2
    one = (num % 2) 
    return quarter, ten, five, two, one

所有的硬币都很好,但是在邮票上出现了一些错误(68)。它不包括最后一个中的一(1)个。请解释一下我哪里出了问题,并说明原因。提前感谢。

您正在将
one
设置为等于
num/2
的剩余部分


68是偶数。
68/2没有余数
,因此变量
one
将为0。

您正在将
one
设置为等于
num/2
的余数


68是偶数。
68/2没有余数,因此变量
one
将为0。

这也将在6中断。原因是添加2秒后,
num%2
不是正确的剩余金额,因为我们使用5更改了奇偶校验。正确的代码是

def stamps(num):
    quarter, num = divmod(num, 25)
    ten, num = divmod(num, 10)
    five, num = divmod(num, 5)
    two, num = divmod(num, 2)
    one = num  # or one, num = divmod(num, 1); you could extract a loop
    return quarter, ten, five, two, one

这也会在6点中断。原因是添加2秒后,
num%2
不是正确的剩余金额,因为我们使用5更改了奇偶校验。正确的代码是

def stamps(num):
    quarter, num = divmod(num, 25)
    ten, num = divmod(num, 10)
    five, num = divmod(num, 5)
    two, num = divmod(num, 2)
    one = num  # or one, num = divmod(num, 1); you could extract a loop
    return quarter, ten, five, two, one

不清楚你到底想做什么?什么是邮票?你能给出一些样本输入和输出(在正确或不正确的情况下)它对stamp(6)有效吗?@GarrettR-请检查edits@stefan-不,谢谢。不清楚你到底想做什么?什么是邮票?你能给出一些样本输入和输出(在正确或不正确的情况下)它对stamp(6)有效吗?@GarrettR-请检查edits@stefan-不,谢谢。请你解释一下平价。您的one=num部件工作正常。谢谢。@deep 6,原来的金额是偶数。1,使用5后剩余的数量是奇数。这个贪婪算法应该工作得很好。。。请注意,对于某些面值的邮票(不在问题陈述中),这将中断。请您解释一下平价。您的one=num部件工作正常。谢谢。@deep 6,原来的金额是偶数。1,使用5后剩余的数量是奇数。这个贪婪算法应该工作得很好。。。值得注意的是,某些面值的邮票(不在问题陈述中)会出现这种情况