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个数的阶乘的和