我将使用一个来自项目Euler练习的代码示例。你知道吗
[(a, b, c) for a in range(1, 334) for b in range(1, 334) for c in range(1,334) if c == 1000 - a - b and a < b and b < c and a**2 + b**2 == c**2]
我对列表的理解知之甚少,但我想知道是否有一种方法可以暗示a、b、c是int>;0,并且你想增加它们
这方面的两个伪代码示例可能类似于:
[(a, b, c) for a > 0 for b > a for c > b if c == 1000 - a - b]
[(a, b, c) for int(a) for int(b) for int(c) if c == 1000 - a - b]
有可能这样做吗?你知道吗
以下是您的方法的简化:
c
是fix,它总是1000 - a - b
,所以不需要循环 它的价值观。您可以将
b
的范围开始为range(a+1,333)
,这样您就不必这样做了 测试b>a
尽管我认为解决问题的方法是错误的
相关问题 更多 >
编程相关推荐