2.编写程序,定义一个求阶乘的函数fact(n),并编写测试代码,要求输人整数n(n≥0)。 运行效果参见图8-4。请分别使用递归和非递归方式实现。
时间: 2023-11-27 22:49:22 浏览: 117
递归方式实现:
```python
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
n = int(input("请输入一个非负整数:"))
print(f"{n}的阶乘为:{fact(n)}")
```
非递归方式实现:
```python
def fact(n):
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input("请输入一个非负整数:"))
print(f"{n}的阶乘为:{fact(n)}")
```
运行效果:
```
请输入一个非负整数:5
5的阶乘为:120
```
相关问题
编写程序,定义一个求阶乘的函数 fact(n),并编写测试代码,要求输入整数 n(n>=0)
当然可以。在Python中,我们可以使用递归或循环的方式来定义一个计算阶乘的函数。这里我给你两个简单的例子:
**使用递归的方法:**
```python
def fact(n):
if n == 0 or n == 1: # 阶乘的基本情况
return 1
else:
return n * fact(n - 1) # 递归调用
# 测试代码
def test_fact():
for i in range(10): # 测试从0到9的整数阶乘
print(f"Fact of {i}: {fact(i)}")
test_fact()
```
**使用循环的方法:**
```python
def fact(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
# 测试代码
def test_fact_iterative():
for i in range(10):
print(f"Fact of {i}: {fact(i)}")
test_fact_iterative()
```
在这两个例子中,`test_fact()` 和 `test_fact_iterative()` 是用来测试`fact()` 函数是否按预期工作的测试代码,它们分别展示了两种常见的实现阶乘的方式。
编写程序,定义一个求阶乘的函数fact(n),并编写测试代码,要求输入整数n(n>=0)。 实验步骤
:1. 打开一个编程环境,如Python IDLE。
2. 定义一个函数fact(n),用于计算阶乘。可以使用递归或循环结构来实现。
3. 编写测试代码,调用函数fact(n)进行测试。要求输入一个整数n,然后输出n的阶乘。注意,输入的整数n必须大于等于0,否则会发生错误。
4. 运行测试代码,检查程序运行的结果是否正确。如果有错误,需要修改代码并重新测试,直到程序运行无误为止。
阅读全文