C++ 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零
时间: 2025-01-21 11:29:13 浏览: 62
要将一个整数的各个位上的数字反转并满足整数的常见形式(即最高位数字不为零),可以按照以下步骤进行:
1. 处理负数情况:将负数转换为正数进行反转,最后再将结果转换为负数。
2. 反转数字:将数字的每一位取出并重新组合成一个新的数字。
3. 去除前导零:在反转过程中,去除结果的前导零。
以下是一个C++代码示例,展示了如何实现这个过程:
```cpp
#include <iostream>
#include <cmath>
int reverseInteger(int num) {
int reversedNum = 0;
int sign = 1;
// 处理负数情况
if (num < 0) {
sign = -1;
num = -num;
}
// 反转数字
while (num != 0) {
int digit = num % 10;
reversedNum = reversedNum * 10 + digit;
num /= 10;
}
// 恢复符号
reversedNum *= sign;
return reversedNum;
}
int main() {
int num;
std::cout << "请输入一个整数: ";
std::cin >> num;
int reversedNum = reverseInteger(num);
std::cout << "反转后的整数是: " << reversedNum << std::endl;
return 0;
}
```
### 代码解释:
1. **处理负数情况**:如果输入的数字是负数,先记录符号并将数字转换为正数进行反转,最后再将结果转换为负数。
2. **反转数字**:通过取余和整除操作,将数字的每一位取出并重新组合成一个新的数字。
3. **恢复符号**:将反转后的数字恢复为原来的符号。
### 示例运行:
```
请输入一个整数: -123
反转后的整数是: -321
```
阅读全文
相关推荐
















