对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
方法1:for循环
def factorial(x):
sum = 1
for i in range(1, x + 1):
sum = sum * i
return sum
a = int(input())
s = 0
for i in range(1, a + 1):
s += factorial(i)
print(s)
方法2:套嵌循环
N = int(input())
S = 0
for i in range(1, N + 1):
x = 1
for j in range(1, i + 1):
x *= j
S += x
print(S)
方法3: 利用递归
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def getSum(n):
sum = 0
for x in range(1, n + 1):
sum += factorial(x)
return sum
a = int(input())
print(getSum(a))
方法4: math.factorial(x) 方法返回 x 的阶乘。
from math import factorial
N = int(input())
S = 0
for i in range(1, N+1):
S += factorial(i)
print(S)
方法5:reduce() 函数会对参数序列中元素进行累积。
from functools import reduce
from math import factorial
N = int(input())
print(reduce(lambda x, y: x+y, map(factorial,range(1,N+1))))