编写程序,定义一个求阶乘的函数fact(n),分别使用递归和非递归函数实现
时间: 2024-02-07 11:04:16 浏览: 90
好的,以下是Python语言的实现代码:
使用递归函数实现阶乘:
```python
def fact(n):
if n == 1: # 递归结束条件
return 1
else:
return n * fact(n-1) # 递归调用
```
使用非递归函数实现阶乘:
```python
def fact(n):
res = 1
for i in range(1, n+1):
res *= i
return res
```
以上代码中,递归函数的实现通过不断调用自身来实现,直到达到递归结束条件。非递归函数则通过循环遍历计算每个数的阶乘,最终得到结果。
相关问题
编写程序,定义一个求阶乘的函数fact(n),并编写测试代码,要求输入整数n(n>=0)。 运行效果参见图。请分别使用递归和非递归方式实现。
好的,我明白了。下面是我的回答:
使用递归方式实现:
```python
def fact(n):
if n == 0 or n == 1:
return 1
else:
return n * fact(n-1)
n = int(input("请输入一个非负整数:"))
print("%d 的阶乘为:%d" % (n, fact(n)))
```
使用非递归方式实现:
```python
def fact(n):
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input("请输入一个非负整数:"))
print("%d 的阶乘为:%d" % (n, fact(n)))
```
以上就是我的回答,希望能够帮到您。
2.编写程序,定义一个求阶乘的函数fact(n),并编写测试代码,要求输人整数n(n≥0)。 运行效果参见图8-4。请分别使用递归和非递归方式实现。
递归方式实现:
```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
```