python基础练习题(题目 阶乘求和)

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))))

原文地址:https://www.cnblogs.com/qgc1995/p/15032651.html