本文来源于粉丝私信的问题,目的在于计算result = 1!+2!+3!+...+n!,因为代码比较简单,没加注释,有问题可以留言交流。文中给出了2段代码,在实际使用时应优先考虑使用第一段,第二段仅用来验证,涉及大量重复计算,效率极低。
def factorialBefore(n):
result, t = 1, 1
for i in range(2, n+1):
t *= i
result += t
return result
def verify(n):
from math import factorial
result = 0
for i in range(1, n+1):
result += factorial(i)
return result
from random import randrange
for i in range(10000):
n = randrange(1, 1000)
if factorialBefore(n) != verify(n):
print(n, 'error')
运行结果:无输出,表示两段代码计算结果一致。