用递归算法写程序,输入一个非负整数,输出这个数的倒序数
时间: 2024-12-20 08:24:12 浏览: 6
使用递归算法来实现一个数的倒序是非常直接的方法,特别是对于非负整数。我们可以定义一个递归函数,该函数接收当前的数字和剩余未处理的部分,然后每次递归调用自身,减少当前数字并增加结果中的相应位置。这里有一个简单的C++示例:
```cpp
#include <iostream>
// 递归函数,接受当前数字和剩余位数
int reverseNumber(int num, int remaining) {
// 基础情况:如果剩余位数为0,返回当前数字
if (remaining == 0)
return num;
// 递归情况:否则,取出个位数(num % 10),并在高位上加上这个数(reverseNumber(num / 10, remaining - 1))
return reverseNumber(num / 10, remaining - 1) * 10 + num % 10;
}
// 主函数,获取用户输入并调用上述函数
int main() {
std::cout << "请输入一个非负整数: ";
int input;
std::cin >> input;
// 验证输入是非负整数
if (input < 0) {
std::cerr << "错误:输入必须是非负整数!" << std::endl;
return 1;
}
// 输出倒序数
int reversed = reverseNumber(input, 1); // 1表示从最低位开始计数
std::cout << "倒序后的数是: " << reversed << std::endl;
return 0;
}
```
在这个例子中,`reverseNumber`函数首先检查是否到达了剩余位数为零的基础情况,如果是,则返回当前数字;否则,它递归地处理下一个位,同时把当前位添加到结果中。
阅读全文