我的目标是: 我们想制作一排长度为英寸的砖块。我们有许多小砖(每个1英寸)和大砖(每个5英寸)。如果可以通过从给定的砖块中选择目标来实现目标,则返回True。Codingbat make_bricks用python中的while循环超时
我的代码是:
def make_bricks(small, big, goal):
if small + 5*big < goal:
return False
elif small + 5*big == goal:
return True
else:
while small > 0:
small -= 1
goal -= 1
if goal % 5 == 0 and big >= goal/5:
return True
return False
在我空闲这个效果很好,但codingbat导致TIMEDOUT。这是否是因为大数字while
循环太慢?我正在使用Python 3.2.5。
编辑:
我尝试另一个代码:
def make_bricks(small, big, goal):
if small ==0:
if goal % 5 == 0 and goal/5 <= big:
return True
else:
return False
elif small + 5*big < goal:
return False
elif small + 5*big == goal:
return True
else:
while small > 0:
small -= 1
goal -= 1
if goal % 5 == 0 and big >= goal/5:
return True
return False
但随着同样的问题。
什么值'small'导致暂停? – Carcigenicate
超时是在每一列,但我读过的地方,当一个结果超时,所有将导致超时。但是我看到你的问题更深入,你指出了。这个问题可能是当小== 0.我试试。 – Bobesh
没有工作,同样的问题 – Bobesh