Python函数用于求整数之和

写了一个
python程序,使用高斯方程将数字从1加到给定数字.它适用于100和10但是当我做3时它表示总和是4而不是6.这个等式在我的头脑中解决了,我是否弄乱了代码?

def numberSum(num): 

    nim = int(num)
    num = (nim/2)*(nim+1)
    return num    

print numberSum(raw_input())  

最佳答案

from __future__ import division

def number_sum(num):
    """
    Return sum of 1 .. num
    """
    return num * (num + 1) // 2

num = int(raw_input(": "))
print(number_sum(num))

我改变的事情:

> number_sum不应该负责输入类型;如果它需要一个数字,你应该给它一些数字,而不是一个字符串.
>如果num是int,则num或num 1是偶数,即将num *(num 1)除以2将导致int.这不一定适用于num;因此,如果需要整数结果,则应将乘积除以2而不是num.
>在Python 2.6中,来自__future__ import division使/始终返回一个float结果并且//总是返回一个int结果,与Python 3.x一致

点赞