前n个奇数的平方和

时间:2017-03-05 09:16:27

标签: python

我获得了一项任务,找到前n个奇数的平方和,其中n由用户给出。

作业是;

The script only takes one input, so do not
# include any input command below. The print commands below are already given.
# Do not alter the print commands. Do not add any other prints commands.

r = range(1, n + 1)         # prepare the range
result = 0                  # initialise the result
for k in r:                 # iterate over the range
    result = result + k     # update the result

  compute the sum of the squares of the first n odd numbers, and print it

这是我到目前为止所做的事情;

r = range(1, n ** n, 2)         
result = 0                  
for k in r:                 
    result = result + k     

我知道范围是错误的,因为当我运行它时,我使用5作为n我希望答案是165,因为前5个奇数的平方是165但是我得到144。

请帮忙

3 个答案:

答案 0 :(得分:1)

r = range(1, n + 1,2)
print r
result = 0                  
for k in r:                
result = result + k ** 2
print result

如果你传递n = 5那么它将打印35因为范围是1,3,5并且在迭代期间它跳过步骤2,4..你正在考虑像1,3,5,7,9 = 165但是实际结果将是35因此而不是n = 5你可以传递n = 7所以当你传递n = 7时,范围将是[1,3,5,7,9]并且输出将是165

答案 1 :(得分:1)

我们想要迭代奇数,所以如果我们想要做n个奇数,我们需要达到2 * n。例如,5个奇数将是1,3,5,7,9和2 * 5 = 10,但我们只想要所有其他数字,所以我们有命令r = range(1, n * 2, 2)

然后我们从零开始并添加到它,因此result = 0

现在我们迭代我们的范围(r)并将迭代器平方加到我们的结果中,因此result = result = (k * k)

总的来说,我们有:

r = range(1, n * 2, 2)
result = 0
for k in r:
    result = result + (k * k)
print result

答案 2 :(得分:0)

n**n是n次幂。因此,对于n=5,您的范围是1到3125之间的所有奇数。它应该是1到10之间的奇数。

r = range(1, n ** n, 2) 
#               ^ replace n**n by ...

你想要求平方,所以你应该计算平方:

result = result + k
#                   ^ something is missing here