【发布时间】:2015-03-28 05:45:57
【问题描述】:
你好,这些函数根据这两个动物的头和腿的输入返回猪和鸡的数量。我对python真的很陌生。我无法理解它是如何工作的。你能详细解释一下吗?
def solve(numLegs, numHeads):
for numChick in range(0, numHeads + 1):
numPigs = numHeads - numChicks
totLegs = 4 * numPigs + 2* numChicks
if totLegs == numLegs:
return [numPigs, numChicks]
return[None, None]
def barnYard():
heads = int(raw_input('Enter number of heads:'))
legs = int(raw_input('Enter number of legs:'))
pigs, chickens = solve(legs, heads)
if pigs = None:
print 'there is no solution'
else:
print 'number of pigs:' , pigs
pirnt 'number of chickes:', chickens
所以当我运行 barnYard 函数时,它会询问头数,所以我放了 20 个头,然后放了 56 条腿。它打印猪的数量 8 和鸡的数量 12。但我真的不明白它在这个阶段是如何达到的。特别是solve() 函数。帮助将不胜感激。
【问题讨论】:
-
我现在就告诉你,这是一个非常慢的算法来解决这个问题,而且它可以更快地完成,实际上在 O(1) 时间内。另外,这个问题不属于 S.O.因为它的范围太广了。
-
逐行浏览代码,用铅笔和纸写下每一步的变量值。那应该让你开始。建议您使用少量的头和腿。如果您在教程/课程/课程/mooc 中已经做到了这一点,那么您应该能够完成它。
标签: python function python-2.7