下面通过例子来说明循环和递归的差异和优劣。任给十进制的正整数,完成以下操作:(1)请按序输出其各位数字。(2)逆序输出其各位数字。
时间: 2024-10-11 14:15:35 浏览: 37
循环和递归都是控制程序流程的重要手段,它们在处理需要重复执行某段代码的问题时有所不同。
**循环示例(遍历每一位数字并输出)**:
```python
num = 12345
while num > 0:
digit = num % 10
print(digit)
num = num // 10 # 或者 num /= 10 (Python 3)
# 循环优点:效率高,因为循环结构通常有明确的结束条件,不会像递归那样可能存在无限递归的风险。
```
**循环示例(逆序输出各位数字)**:
```python
num = 12345
reverse_num = []
while num > 0:
reverse_num.append(num % 10)
num = num // 10
reverse_num.reverse()
for digit in reverse_num:
print(digit)
```
**递归示例(输出每位数字)**:
```python
def print_digits(n):
if n > 0:
print(n % 10)
print_digits(n // 10)
print_digits(12345) # 注意递归终止条件,这里为n == 0
# 递归优点:代码简洁,易于理解,尤其适用于那些自然地用递归描述的问题,如树形结构、分治算法等。
```
**递归示例(逆序输出)**:
```python
def reverse_digits(n, reversed_num=()):
if n > 0:
reversed_num += (n % 10,)
return reverse_digits(n // 10, reversed_num)
else:
return reversed(reversed_num)
print(reverse_digits(12345))
```
阅读全文