通过函数求解1!+2!+3!+……+n!的和用python
时间: 2024-11-18 22:12:52 浏览: 31
在Python中,你可以编写一个函数来计算1到n的所有阶乘之和。阶乘是一个数及其所有小于它的正整数的积,例如5! = 5 * 4 * 3 * 2 * 1。以下是如何使用递归和循环的方式来实现这个功能:
**使用循环(非递归)**:
```python
def factorial_sum(n):
fact = 1
sum_of_fact = 0
for i in range(1, n + 1):
fact *= i
sum_of_fact += fact
return sum_of_fact
# 示例:计算1到5的阶乘和
n = 5
result = factorial_sum(n)
print(f"1! + 2! + ... + {n}! = {result}")
```
**使用递归(递归实现可能会因为n较大导致效率较低)**:
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
def factorial_sum_recursive(n):
return sum(factorial(i) for i in range(1, n + 1))
# 示例:计算1到5的阶乘和
n = 5
result = factorial_sum_recursive(n)
print(f"1! + 2! + ... + {n}! = {result}")
```
记得处理好输入值n,防止过大的阶乘导致溢出。
阅读全文