Python中奇数整数的总和

时间:2016-05-09 22:36:13

标签: python

我需要弄清楚如何在Python中编写for循环,返回NOT打印给定输入的奇数整数之和。我不能使用sum函数或列表。到目前为止我只有这个:

def sumofoddints (n):

    n >= 1

    total = 0

    for num in range (1, n):

        if num % 2 == 1:

            total += n

    return total

这不能给我正确的金额,所以我不知道如何解决它。

5 个答案:

答案 0 :(得分:4)

使用数学有一种更简单的方法。

修改  对不起这是我的错。这是更正后的公式

def sumOdd(n):
    return ((n+1)/2)**2

n = 1 => 1 = 1

n = 3 => 1 + 3 = 2 ** 2 = 4

n = 5 => 1 + 3 + 5 = 3 ** 2 = 9

n = 7 => 1 + 3 + 5 + 7 = 4 ** 2 = 16

答案 1 :(得分:3)

应该是total += num,您只是添加了错误的变量。

答案 2 :(得分:0)

Python让这非常简单

FILE *pFile;
pFile=fopen("client.txt","w");//create and open file in write mode

范围(1,n,2)从1开始并按两次计数直到达到n (范围不包括最后一位,例如范围(0,2)是0,1而不是0,1,2 所以我们在最后添加n)

sum(list)函数返回列表中所有项目的总和。

编辑:它似乎不适用于整数,所以我加了-1,如果它是偶数。

答案 3 :(得分:0)

只需将total += n更改为total += num 因为num是变化的那个,而不是n

必须是这样的:

def sumofoddints (n):
    n >= 1
    total = 0
    for num in range (1, n):
        if num % 2 == 1:
            total += num

    return total

答案 4 :(得分:0)

它只是 n**2。

阅读此处:https://www.quora.com/What-is-the-formula-for-the-sum-of-n-odd-numbers

def sumofoddints (n):
  return n**2