编写求阶乘的函数fac()用两种方法 秋天1!+3!+7!+…n!
时间: 2023-07-02 12:09:50 浏览: 93
下面是 Python 3 代码实现:
```python
# 方法一:使用循环计算阶乘
def fac(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
# 方法二:使用递归计算阶乘
def fac_recursion(n):
if n == 0 or n == 1:
return 1
else:
return n * fac_recursion(n - 1)
# 计算1!+3!+7!+...+n!
def sum_factorial(n):
result = 0
for i in range(1, n + 1, 2):
result += fac(i)
return result
# 测试阶乘函数
print(fac(5)) # 输出 120
print(fac_recursion(5)) # 输出 120
# 测试求和函数
print(sum_factorial(7)) # 输出 5913
```
方法一中使用了循环来计算阶乘,方法二中使用了递归来计算阶乘。在计算阶乘时,注意特殊情况 0! 和 1! 的值都为 1。
求和函数 sum_factorial() 中使用了一个步长为 2 的循环来计算 1!+3!+7!+...+n!,即从 1 开始,每次加 2,直到 n。在循环中调用 fac() 函数来计算阶乘,并将结果累加到结果变量 result 中,最终返回 result。
阅读全文