首页 文章

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

提问于
浏览
0

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

相关问题