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