python当中sum()函数为什么比循环累加快

python当中sum()函数为什么比循环累加快

问题描述

求1+2+3+...+n的值。

题目要求

1 <= n <= 1,000,000,000。
时间限制:1.0s

n = eval(input())
s = 0
for i in range(n+1):
    s += i
print(s)

当我试了一下发现n=1000000000的时候一秒肯定算不出来
此时改写代码

n = eval(input())
print(((1 + n) * n)/2)

这样n=1000000000时速度是非常快的
此时我又试了另一种写法

n = eval(input())
print(sum(range(1, n+1)))

依然很慢,但还是比第一种写法快好几倍
为什么sum函数比循环加更快呢
经过查询资料得知
sum()函数循环完全在C代码当中执行的,
python是解释语言,而C是编译语言,是比较底层的语言
解释语言和编译语言的速度差异很大

全部评论

相关推荐

如题,他是要劝退我了吗
椛鸣:根据你的时间 来给你安排任务 如果你时间长 可能会参与到一些长期的项目 时间短 那就只能做点零工
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务