定义一个求阶乘的函数fact(n),并编写测试代码,要求输入整数n(n>=0),分别用递归和非递归的方式实现,用python语言
时间: 2024-05-12 11:21:10 浏览: 24
递归方式实现:
```python
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
n = int(input("请输入一个非负整数:"))
print(fact(n))
```
非递归方式实现:
```python
def fact(n):
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input("请输入一个非负整数:"))
print(fact(n))
```
测试代码:
```python
#递归方式测试
assert fact(0) == 1
assert fact(1) == 1
assert fact(5) == 120
assert fact(10) == 3628800
#非递归方式测试
assert fact(0) == 1
assert fact(1) == 1
assert fact(5) == 120
assert fact(10) == 3628800
```