在一行Python中从1到n求和

时间:2016-10-07 19:30:01

标签: python

根据号码n,我需要找到从1n的数字总和。 样本输入和输出:

100
5050

所以我想出了print(sum(range(int(input())+1))),它解决了一行中的问题,但需要很长时间,因为它是O(n)。显然,如果我们知道数字n,那么答案也可以在一行中给出:print(n * (n+1) / 2)但是如何用n替换input()以使程序仍然有效?< / p>

2 个答案:

答案 0 :(得分:10)

表现得好像是Javascript;创建一个带参数n的函数,然后立即调用它,结果为input()

(lambda n: n * (n + 1) / 2)(int(input()))

答案 1 :(得分:0)

Python 3,一行,并且比当前接受的答案短:

n=int(input());print(n*(n+1)/2)