【Python3练习题 020】 求1+2!+3!+...+20!的和
方法一
import
functools
sum
=
0
for
i
in
range
(
1
,
21
):
sum
=
sum
+
functools.
reduce
(
lambda
x,y: x
*
y,
range
(
1
, i
+
1
))
print
(
sum
)
lambda x,y: x*y 的意思是:有一个函数,接受x, y两个参数做乘法。
import
functools
方法二
def
f(n):
if
n
=
=
1
:
return
1
else
:
return
functools.
reduce
(
lambda
x,y: x
*
y,
range
(
1
, n
+
1
))
+
f(n
-
1
)
print
(f(
20
))
方法三
def
plus(n):
if
n
=
=
1
:
return
1
else
:
return
reduce
(
lambda
x,y: x
*
y,
range
(
1
,n
+
1
))
+
plus(n
-
1
)
print
plus(
20
)
方法四
sum
=
0
x
=
1
for
i
in
range
(
1
,
21
):
x
=
x
*
i
sum
=
sum
+
x
print
(
sum
)
逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!