说我有变量'a'和'b',我想让程序运行:
for a in range(n):
for b in range(n):
if a**2 + b**2 ==n:
return (a, b)
else:
执行相同的操作,但使用a,b,c,如下所示:
for a in range(n):
for b in range(n):
for c in range(n):
if a**2 + b**2 + c**2 ==n:
return (a, b, c)
以此类推,以d,e等...找到答案需要很多变量。
我如何将其无限期地应用到找到答案之前? 如何使其创建新变量,然后以上面显示的方式添加它们?
答案 0 :(得分:1)
要记住两件事:首先,x**2 >= 1
表示所有非零的x
;其次,如果为c == 0
,则为a**2 + b**2 + c**2 == a**2 + b**2
。它们共同为您需要考虑的元组的大小设置了n
的上限。
这意味着您可以使用一个循环遍历所有可能的n
-元组:
from itertools import product
for t in product(range(n), repeat=n):
if sum(x**2 for x in t) == n:
return t