我想帮助解决以下问题: 找到a,b,c的三元组的乘积,其中: a + b + c = 1000 和a ^ 2 + b ^ 2 = c ^ 2. 我写了一些python代码,但它没有输出任何东西。请问你能告诉我它有什么问题吗?
for a in range(1000):
for b in range(1000-a):
c = 1000-a-b
if a**2 + b**2 == c**2:
print a*b*c
else:
break
答案 0 :(得分:1)
你的想法是正确的。你必须修改你的格式并在最后删除这个break语句(这个break会让你在第一次尝试时结束循环。哦还有一件事.a和b不能为0因为否则会是微不足道的(500 ** 2 + 0 ** 2 == 500 ** 2)。
def find_product(sum):
for a in range(1, sum):
for b in range(1, sum - a):
c = sum - a - b
if a**2 + b**2 == c**2:
print a*b*c
return a*b*c
else:
pass
#Keep looking! Dont end here :)
print 'No such triplet exists!'
结果是:
>>> find_product(1000) # 200**2 + 375**2 = 425**2
31875000
当然,您可以使用一些聪明的数学技巧来优化您的代码:)