编写程序,定义一个求阶乘的函数,并编写测试代码,输入n,分别使用递归和非递归方式
时间: 2024-12-13 07:17:37 浏览: 14
首先,我们来定义一个递归方式计算阶乘的函数。阶乘是一个数的所有小于及等于它的正整数的积,0的阶乘定义为1。
```python
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
```
接下来,我们编写非递归方式计算阶乘的函数,通常通过循环来实现,这样效率更高。
```python
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
```
现在我们可以编写测试代码来验证这两个函数:
```python
def test_factorial():
assert factorial_recursive(0) == 1
assert factorial_recursive(1) == 1
assert factorial_recursive(5) == 120
assert factorial_iterative(0) == 1
assert factorial_iterative(1) == 1
assert factorial_iterative(5) == 120
test_factorial()
```
在这个测试函数中,我们提供了一些常见的测试用例,比如0、1以及较大数字如5的阶乘,如果所有assert语句都成功执行,说明我们的函数实现是正确的。
阅读全文