题目: 求1+2!+3!+…+20!的和。
程序分析: 1+2!+3!+…+20!=1+2(1+3(1+4(…20(1)))) # 从里往外加,
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
-------------------------------------------------------
File Name: Python练习100【025】:阶乘求和
Author: zhangzx
Date: 2020-12-25
-------------------------------------------------------
Change Activity:
2020-03-23
-------------------------------------------------------
"""
# 解法一:
print("解法一:")
def factorialsum_1(num):
n = 0
s = 0
t = 1
for n in range(1,num+1):
t *= n
s += t
print(s)
factorialsum_1(20)
# 解法二:1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))
print("\n解法二:")
def factorialsum_2(num):
res=1
#从里到外乘
for i in range(num,1,-1):
res=i*res+1
print(res)
factorialsum_2(20)
---------------------------以下是输出-----------------------------
解法一:
2561327494111820313
解法二:
2561327494111820313