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是编译语言,是比较底层的语言
解释语言和编译语言的速度差异很大