【发布时间】:2016-04-03 22:45:16
【问题描述】:
当我遇到问题时,我正在做 Project Euler 中的第 9 题。我的程序运行时间太长了。半个多小时。这是我的代码。
def Problem9():
a = 1
b = 1
c = 1
x = []
while(a + b + c != 1000):
a = a + 1
for i in range(0,1000):
c = 1000 - (a + b)
if a < b < c:
if (a*a) + (b*b) == (c*c):
x.append(a*b*c)
print(a*b*c)
b = b + 1
print(x)
Problem9()
这基本上应该找出所有加起来一千的毕达哥拉斯三元组(链接到问题以便您可以更好地理解它:https://projecteuler.net/problem=9)我的代码中有问题我可以修复还是我的代码根本错误?
【问题讨论】:
-
循环结构看起来非常不自然和复杂。您应该有两个普通的嵌套
for循环,并设置其他两个变量中的第三个变量。优化退出条件,避免不必要的循环。