首页 > 解决方案 > 如何编写一个迭代函数,使用 for 循环计算返回 1 + 3 + .... + (2n - 1) 的前 n 个奇数之和?

问题描述

假设这n是一个正整数

这是我的代码:

def sum_odd_n(n):
    x =1
    for x in range(n):
        if x%2==1:
            continue
        return x + 2

但是当我在 Python 上运行它时,它给了我答案2。你能帮我告诉我出了什么问题以及我应该怎么做来解决这个问题吗?

标签: python

解决方案


由于您想找到第一个“n”个奇数的总和,我建议您使用 step=2 的 range 函数。我会详细说明:

def sum_n(n):
    addition=0
    for x in range(1,2*n,2):
        addition+=x
    return addition
s=sum_n(5)
print(s)

这给出了输出:25

这里,在 range 函数中,第 1 个属性提供起点,第 2 个属性提供终点,第 3 个属性提供序列中每个数字之间的差值。我希望这有帮助。


推荐阅读