day17
---------------------------------------------------------------
实例025: 阶乘求和
题目 求1+2!+3!+…+20!的和。
分析:阶乘嘛,写两个函数解决,一个返回阶乘,一个求和。。。
1 def a(x): 2 tmp = 1 3 if x>1: 4 for i in range(1,int(x)+1): 5 tmp *= i 6 return tmp 7 8 def ct(x): 9 tmp = 0 10 for i in range(1,int(x)+1): 11 tmp+=a(i) 12 return tmp 13 print(ct(20))
看看答案:
1 res=1 2 for i in range(20,1,-1): 3 res=i*res+1 4 print(res)
还是吃了数学的亏,有思路才简单:1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))