给定一个整数,把它的各位数字倒排过来形成一个新的整数
时间: 2024-12-20 13:28:05 浏览: 11
要将一个整数的各位数字倒序排列并形成新的整数,你可以使用位操作或字符串处理的方法。这里提供两种常见的C++方法:
**方法一:位操作(适用于小范围整数)**
如果你只对小范围整数感兴趣,比如0到999这样的三位数,可以使用位运算逐位取反和移动来实现。
```cpp
int reverseInt(int x) {
int sign = (x < 0) ? -1 : 1; // 记录原数的符号
x = abs(x); // 取绝对值
int reversed = 0;
while (x != 0) {
reversed = reversed * 10 + x % 10; // 将个位添加到reversed
x /= 10; // 移除最低位
}
return sign * reversed; // 重新加上符号
}
```
**方法二:字符串转换(通用方法)**
如果需要支持更大的整数,可以先将整数转化为字符串,然后反转字符串再转回整数。
```cpp
#include <string>
std::string toStr(int num) {
std::ostringstream oss;
oss << num;
return oss.str();
}
int reverseInt(int num) {
std::string strNum = toStr(num);
std::reverse(strNum.begin(), strNum.end());
return stoi(strNum);
}
```
阅读全文