我需要用给定的数字计算,有多少“五”、“二”和“一”可以进入这些数字。抱歉,我的英语对于这种解释有点有限:) 也许举个例子更好:
练习: print stamps(8) 结果应该是:(1, 1, 1) ( 一个 5p stamp, 一个 2p stamp 和一个 1p stamp)
我找到了实现这一目标的方法,但是 tuple() 正在打印结果和“无”,我不知道为什么。我也想知道是否有更好、更短的方法来获得正确的结果。
这就是我所做的:
def stamps(dinero):
p5=dinero/5
p5a=p5*5
resultado1=dinero-p5a
dinero=resultado1
p2=dinero/2
p2a=p2*2
resultado2=dinero-p2a
dinero=resultado2
p1=dinero/1
p1a=p1*1
resultado3=dinero-p1a
dinero=resultado3
print tuple([p5,p2,p1])
我得到的结果是:print stamps(8) is (1, 1, 1) None
更新: 我找到了更好的解决方案,我将其发布在这里以防万一有人想知道更好的解决方案:
def stamps(n):
#Basically, thats the same as return n/5, n%5/2, n%5%2
return n/5, (n-5*(n/5))/2, (n-5*(n/5))-2*((n-5*(n/5))/2)