python用递归写一个程序
时间: 2023-10-17 14:05:34 浏览: 37
好的,下面是一个简单的例子,使用递归计算阶乘:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
print(factorial(5)) # 输出 120
```
在这个例子中,我们定义了一个函数 `factorial`,它使用递归计算阶乘。如果 `n` 等于 1,那么返回 1,否则返回 `n` 乘以 `factorial(n-1)`,即 `n` 的阶乘。
当我们调用 `factorial(5)` 时,它会先调用 `factorial(4)`,然后 `factorial(3)`,一直递归到 `factorial(1)`,最终返回 1\*2\*3\*4\*5 = 120。
相关问题
python写一个经典递归程序
好的,这里给你一个计算斐波那契数列的经典递归程序:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
```
该程序将返回斐波那契数列第n项的值。注意,在n较大时,该程序的效率较低,因为它会重复计算很多项。可以使用动态规划等其他技术来优化它。
写一个递归的python程序
### 回答1:
好的,我可以回答这个问题。以下是一个递归的 Python 程序示例:
```
def factorial(n):
if n == :
return 1
else:
return n * factorial(n-1)
```
这个程序计算一个数的阶乘,使用了递归的方式。如果输入的数为 ,则返回 1;否则,返回该数乘以它减 1 的阶乘。
### 回答2:
当然!以下是一个递归的Python程序示例:
```python
def countdown(n):
if n <= 0:
print("倒计时结束!")
else:
print(n)
countdown(n-1)
countdown(5)
```
这个程序使用递归的方式实现了一个倒计时功能。`countdown`函数接受一个整数参数`n`,并打印从`n`开始的倒计时。如果`n`小于等于0,那么递归结束打印"倒计时结束!",否则打印当前的倒计时数`n`,然后通过调用`countdown(n-1)`来进行下一轮的递归。每次递归调用都会使参数`n`减少1,直到`n`小于等于0时递归结束。
在这个示例中,我们将从5开始的倒计时作为输入,程序将打印出以下内容:
```
5
4
3
2
1
倒计时结束!
```
这是一个简单的递归示例,但它展示了如何使用递归来解决某些问题。希望对你有帮助!
### 回答3:
递归是一种函数自己调用自己的技术或方法。下面是一个使用递归编写的Python程序的示例,该程序为用户输入的正整数计算阶乘。
```python
def factorial(n):
# 基本情况:当n等于0或1时,阶乘为1
if n == 0 or n == 1:
return 1
# 递归情况:计算n乘以(n-1)的阶乘
else:
return n * factorial(n-1)
# 获取用户输入的正整数
num = int(input("请输入一个正整数:"))
# 调用递归函数计算阶乘
result = factorial(num)
# 输出结果
print(f"{num}的阶乘为:{result}")
```
上述程序中,我们定义了一个递归函数`factorial()`,它接收一个正整数作为输入,并计算该数的阶乘。当输入为0或1时,直接返回1作为基本情况。对于其他情况,递归调用`factorial()`来计算输入数与其减1的阶乘的乘积。最终,主程序会获取用户输入的正整数,并调用`factorial()`函数来计算阶乘结果,并将其输出到控制台。