超出了内存限制的范围,并且在python

时间:2015-10-29 11:23:42

标签: python python-2.7 python-3.x wxpython ipython

我有一个问题需要解决,在线判断它的解决方案是使整数之和为例如输入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秒

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