用Python,编写个函数用于计算n!(其中n!=1*2*3*···*n),并计算20!的
时间: 2023-12-30 12:05:57 浏览: 21
可以使用递归来实现n!的计算。具体实现如下:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
然后,我们可以调用这个函数来计算20!,并将结果打印出来:
```python
result = factorial(20)
print(result)
```
输出结果为:2432902008176640000。
相关问题
python编写一个函数,用于计算 n!(其中 n!=123*···*n),并计算20!的值。用全局变量和局部变量
使用全局变量的解法:
```python
# 定义全局变量
result = 1
def factorial(n):
"""
计算 n! 的函数
"""
global result # 声明要使用全局变量
for i in range(2, n+1):
result *= i
# 调用函数
factorial(20)
# 输出结果
print(result)
```
使用局部变量的解法:
```python
def factorial(n):
"""
计算 n! 的函数
"""
result = 1 # 定义局部变量
for i in range(2, n+1):
result *= i
return result
# 调用函数
result = factorial(20)
# 输出结果
print(result)
```
这两个解法的输出结果都是 2432902008176640000,即 20! 的值。使用全局变量的解法可能会影响其他部分的代码,因此建议使用局部变量的解法。
用Python编写程序,计算s=1!+2!+…+n!
可以使用Python的循环和递归两种方式来计算s=1!+2!+…+n!。
1. 循环方式:
```python
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
def sum_factorial(n):
s = 0
for i in range(1, n+1):
s += factorial(i)
return s
```
2. 递归方式:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def sum_factorial(n):
if n == 0:
return 0
else:
return sum_factorial(n-1) + factorial(n)
```
其中,factorial函数用于计算n的阶乘,sum_factorial函数用于计算s=1!+2!+…+n!。