我有一个问题需要解决,在线判断它的解决方案是使整数之和为例如输入4使得1 + 2 + 3 + 4输出10和另一个例子输入10所以得到1的总和10进入输出55等等但是当我用List来存储数字并进行求和时(List)它给我的内存限制超出这里是代码
n=int(raw_input())
lista=[]
for x in range(1,n+1):
lista.append(x)
print sum(lista)
所以我尝试了另一个解决方案,不要保存在列表中以避免内存超出,所以我试试这个
n=int(raw_input())
sum=0
for i in xrange(1,n+1):
sum=sum+i
print sum
但我得到时间限制超过任何有解决这个问题注意输入的数字范围他将测试是1≤N≤10^ 9当我尝试10 ^ 9它真的沿着时间得到另一个答案注意每个测试的时间限制是1秒
答案 0 :(得分:0)
This is arithmetic progression and computes as S = ½(a1 + an)n,
where a1 is first member, which is 1 in this case. an is the last
member which is n in this case.
def arthimPSum(n):
return round((1 + n)*n *0.5)
print(arthimPSum(10**9))
500000000500000000