编写函数求1~n的阶乘之和
时间: 2024-02-07 21:03:54 浏览: 85
好的,以下是求1~n的阶乘之和的函数实现(使用了递归方式):
```python
def factorial_sum(n):
if n == 1:
return 1
else:
return n * factorial_sum(n-1) + 1
```
这个函数的基本思路是:如果 n == 1,返回 1(1 的阶乘为 1);否则,返回 n * factorial_sum(n-1) + 1。这个递归式的意义是:对于任意的 n,都有 1! + 2! + ... + n! = n! + (1! + 2! + ... + (n-1)!) + 1。递归调用 factorial_sum 函数即可。
相关问题
编写一个程序求1!十2!十3!十…十n!,要求编写一个函数来求n!,然后利用该函数求1~n的阶乘和
以下是 Python 的实现:
```python
def factorial(n):
"""
求n的阶乘
"""
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
def sum_factorial(n):
"""
求1!到n!的和
"""
sum = 0
for i in range(1, n+1):
sum += factorial(i)
return sum
n = 5
print(sum_factorial(n)) # 输出1!到5!的和
```
输出结果为:153。
用Python编写一个程序求1! +2! +3! +...+n!,要求编写一个函数求n!,然后利用该函数求1~n的阶乘和。
以下是Python编写一个程序求1! +2! +3! +...+n!的方法:
```python
# 定义一个函数求n的阶乘
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
# 求1! +2! +3! +...+n!的和
def sum_factorial(n):
sum = 0
for i in range(1, n+1):
sum += factorial(i)
return sum
# 测试
n = int(input("请输入一个正整数:"))
if n < 1 or n > 40:
print("请输入1~40之间的正整数!")
else:
print("1! +2! +3! +...+n!的和为:", sum_factorial(n))
```
阅读全文