|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 六道土豆 于 2016-9-18 09:47 编辑
def barnYard1():
heads = int(input('Enter number of heads:'))
legs = int(input('Enter number of legs:'))
pigs, chickens, spiders = solve2(legs, heads)
if pigs == None:
print('There is no solution')
else:
print('Number of pigs:', pigs)
print('Number of chickens:', chickens)
print('Number of spiders:', spiders)
def solve2(numLegs, numHeads):
solutionFound = False
for numSpiders in range(0, numHeads + 1):
for numChicks in range(0, numHeads - numSpiders + 1):
numPigs = numHeads - numChicks - numSpiders
totLegs = 4 * numPigs + 2 * numChicks + 8 * numSpiders
if totLegs == numLegs:
print('Number of pigs: ' ,numPigs)
print('Number of chickens: ' ,numChicks)
print('Number of spiders: ' ,numSpiders)
solutionFound = True
if not solutionFound: print('There is no solution')
放在Python3中 为什么计算不了
代码中有两个函数,barnYard1() 用于输入数据并调用 solve2() 函数来找到可能的解决方案。solve2() 函数使用嵌套的循环来尝试不同的动物数量组合,并检查它们是否满足给定的头和腿的总数。
修改后:
- def barnYard():
- heads = int(input('Enter number of heads: '))
- legs = int(input('Enter number of legs: '))
- solutionFound = False
- for spiders in range(heads + 1):
- for chickens in range(heads - spiders + 1):
- pigs = heads - chickens - spiders
- total_legs = 4 * pigs + 2 * chickens + 8 * spiders
- if total_legs == legs:
- print('Number of pigs:', pigs)
- print('Number of chickens:', chickens)
- print('Number of spiders:', spiders)
- solutionFound = True
- break # 如果找到一个解决方案,退出循环
- if solutionFound:
- break # 如果找到一个解决方案,退出外部循环
- if not solutionFound:
- print('There is no solution')
- barnYard()
复制代码
|
|