每日一練 no.9
阿新 • • 發佈:2018-12-19
問題:
求1+2!+3!+…+20!的和
解答:
方法一: 使用for迴圈:
n = 0
s = 0
t = 1
for n in range(1,21):
t *= n
s += t
print(s)
方法二: 構建函式,使用map,reduce(注意:python3的reduce函式在functools中)
from functools import reduce
l = range(1,21)
def factorial(x):
lt = range(1, x+1)
r = reduce(lambda x,y: x*y ,lt)
return r
s = sum(map(factorial,l))
print (s)
方法三: 使用 math包 中的階乘函式
from math import factorial
l = range(1,21)
s = sum(map(factorial,l))
print(s)
或是numpy中的
import numpy as np
l = range(1,21)
s = sum(map(np.math.factorial,l))
print(s)