我需要帮助解决以下问题: 求 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
最佳答案
你的想法是正确的。你必须修复你的格式并在最后删除这个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
当然,您的代码可以通过使用一些巧妙的数学技巧来优化:)
关于python - Python 中的毕达哥拉斯三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27280109/