题目:
用高精度计算出 S=1!+2!+3!+⋯+n!(n≤50)。其中“!”表示阶乘,例如:5!=5×4×3×2×1。
输入格式:
一个正整数n。
输出格式:
一个正整数S,表示计算结果。
输入输出样例:
输入:3
输出:9
方法1:暴力法
代码如下:
n=int(input())
sum=0
for i in range(1,n+1):
s = 1
for j in range(1,i+1):
s=s*j
sum+=s
print(sum)
方法2:递归法
代码如下:
def fun(n):
if n == 1:
return 1
else:
return n * fun(n-1)
if __name__ == '__main__':
n = int(input())
sum = 0
for i in range(1, n+1):
sum += fun(i)
print(sum)
方法3:使用functools库
from functools import reduce
print(reduce(lambda x,y:x+y,[reduce(lambda x,y:x*y,range(1,i+1)) for i in range(1, int(input())+1)]))