根据号码n
,我需要找到从1
到n
的数字总和。
样本输入和输出:
100
5050
所以我想出了print(sum(range(int(input())+1)))
,它解决了一行中的问题,但需要很长时间,因为它是O(n)
。显然,如果我们知道数字n
,那么答案也可以在一行中给出:print(n * (n+1) / 2)
但是如何用n
替换input()
以使程序仍然有效?< / p>
答案 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)