先利用递归方法求一下5!
def fact(i):
sum = 0
if i == 0:
sum = 1
else:
sum = i*fact(i-1)
return sum
print(fact(5))
求1+2!+3!+…+20!的和
#法一:
n = 0
s = 0
t = 1
for n in range(1,21):
t *= n
s += t
print(s)
函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,
并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
s = 0
l = range(1,21)
def mul(x):
r = 1
for i in range(1,x+1):
r *= i
return r
s=sum(map(mul,l))
print(s)
#法三,递归
s = 0
def mul(n):
if n==1:
return 1
return n*mul(n-1)
for n in range(1,21):
a = mul(n)
s += a
print(s)
#法四,列表
#!/usr/bin/python
s = 1
t = []
for i in range(1,21):
s *= i
t.append(s)
print(sum(t))
法五,使用lambda匿名函数
reduce() 函数会对参数序列中元素进行累积,函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:
- 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,
- 得到的结果再与第三个数据用 function 函数运算,最后得到一个结果
from functools import reduce
a = 0
for n in range(1, 21):
a += reduce(lambda x, y: x * y, range(1, n + 1))
print(a)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)