1 #题目:求1+2!+3!+...+20!的和.


代码:


1
2
3
4
5
6
7
8
  2 
  3 = 0
  4 for in range(1,21):
  5     = 1
  6     for in range(1,x+1):
  7             *= y
  8     += s
  9 print('1+2!+3!+...+20!的和为%d'%m)


运行结果:


1
2
3
[root@HK code_100]# python code_25.py 
1+2!+3!+...+20!的和为2561327494111820313
[root@HK code_100]#


代码解释:


1
2
3
4
5
6
7
8
9
 #思路:首先累乘求出每一个数的阶乘值,然后累加求出所有数阶乘值的和
  2 
  3 = 0                                #m是求和累加,初始化为0
  4 for in range(1,21):                #遍历1到20个数
  5     = 1                            #s是求累乘,初始化为1,位置有应该放在两层for循环中间,每次内层for循环完成之后,下一个for x开始计算时都要重新置1
  6     for in range(1,x+1):           #这个for y的取值是从1到x,包含了所有阶乘的数值
  7             *= y                   #将所有符合要求的数字相乘,就得到了for x这个数的阶乘的值
  8     += s                           #将这20个数的所有的阶乘值相加,得到最终结果
  9 print('1+2!+3!+...+20!的和为%d'%m)    #打印这20个数的阶乘的和