繁体   English   中英

如何使用for循环编写一个迭代函数来计算前n个奇数的和,它返回1 + 3 +…+(2n-1)?

[英]How do I write an iterative function that computes the sum of the first n odd numbers it returns 1 + 3 + … + (2n - 1), using a for loop?

假设n是一个正整数

这是我的代码:

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

但是当我在Python上运行它时,它给了我答案2 您能否通过告诉我什么地方出了问题以及我应该怎么做才能解决这个问题?

由于您要查找第一个“ n”个奇数之和,因此建议您使用step = 2的范围函数。 我会详细说明:

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

在此,在范围函数中,第一个属性提供起点,第二个属性提供终点,第三个属性提供序列中每个数字之间的差。 我希望这有帮助。

您的代码有一些问题。

  • 首先是您在for循环中有一个return语句。
  • 其次,您只需访问前n个整数,并检查其中哪些是奇数。 您不会访问所有前n个奇数整数。

列表理解解决方案的解决方案如下。

 def sum_odd_n(n): # sum up the first n odd numbers return sum([2*i + 1 for i in range(n)]) 

检查此程序是否可以运行:

a=int(input("how many first odd number sum you want"))

x=1

i=0

def OddSum():

      global i
      global x
      while i<=a:
            x+=2
            i+=1
      print(x)
OddSum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM