我的想法:
def sum_square(n):
result = 0
if n > 0:
i = iter(n)
for i in n:
result += i * i
return result
elif n <= 0:
raise ValueError("n should be positive")
print(sum_square(4))
但是,终端显示int对象不可迭代。 我的答案怎么了?可以根据我的想法进行修改吗?
答案 0 :(得分:4)
首先,知道平方和为closed form。这是将公式累加为n - 1
的公式。
def sum_square(n):
if n < 0:
raise ValueError('n must be positive')
return n*(n-1)*(2*n-1)//6
实际上,所有权力之和都具有a known closed form。
您不能用整数调用iter(n)
,您的意思可能是range(n)
。
def sum_square(n):
result = 0
if n > 0:
for i in range(n):
result += i * i
return result
elif n <= 0:
raise ValueError("n should be positive")
尽管可以使用sum
简化上述操作。
def sum_square(n):
return sum(x**2 for x in range(n))