c语言递归求倒序数pta
时间: 2025-05-14 15:00:34 浏览: 11
### 使用递归实现数字倒序的 PTA 练习题解法
以下是基于递归方法实现的一个 C 语言程序,用于将输入的整数按位逆序输出。该解决方案遵循递归的核心思想:将问题分解为更小的部分逐步解决。
#### 解决方案代码
```c
#include <stdio.h>
// 定义递归函数 reverseNumber
void reverseNumber(int num) {
if (num < 10 && num >= 0) { // 基本情况:当数字小于10时直接打印
printf("%d", num);
return;
}
if (num != 0) { // 处理负号的情况
reverseNumber(num / 10); // 调用自身处理更高位
printf("%d", num % 10); // 打印当前最低位
}
}
int main() {
int m;
scanf("%d", &m);
if (m == 0) { // 特殊情况:如果输入为0,则直接输出0
printf("0");
} else if (m > 0) { // 输入为正数
reverseNumber(m);
} else { // 输入为负数
printf("-");
reverseNumber(-m); // 将负数转为正值再调用递归函数
}
return 0;
}
```
#### 关键点解析
上述代码实现了通过递归方式完成数字倒序的功能。核心逻辑在于每次递归调用 `reverseNumber` 函数时,先处理高位部分(`num / 10`),然后再打印低位部分(`num % 10`)。这种自顶向下的递归策略能够自然地构建出目标顺序的结果[^1]。
对于特殊情况如零值或者负数值也进行了单独考虑,确保程序可以正确应对各种边界条件。
---
#### 示例运行结果
假设用户输入以下测试数据:
**输入案例 1**:
```
12345
```
**输出结果**:
```
54321
```
**输入案例 2**:
```
-9876
```
**输出结果**:
```
-6789
```
**输入案例 3**:
```
0
```
**输出结果**:
```
0
```
以上展示了不同场景下程序的行为表现,验证了解决方案的有效性和鲁棒性。
---
阅读全文
相关推荐









