给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。每 1 行一个整数,多行输入,每 1 行一个整数,表示反转后的新数,使用C++实现
时间: 2024-05-12 07:15:46 浏览: 36
c++输入一个整数,输出一个整数
以下是使用 C++ 实现的代码:
```cpp
#include <iostream>
using namespace std;
int reverse(int x) {
int rev = 0;
while (x != 0) {
int pop = x % 10;
x /= 10;
if (rev > INT_MAX/10 || (rev == INT_MAX/10 && pop > 7)) return 0;
if (rev < INT_MIN/10 || (rev == INT_MIN/10 && pop < -8)) return 0;
rev = rev * 10 + pop;
}
return rev;
}
int main() {
int num;
while (cin >> num) {
int res = reverse(num);
cout << res << endl;
}
return 0;
}
```
其中,`reverse` 函数实现了将给定整数各个位上数字反转的功能,`main` 函数则用于输入和输出。在 `reverse` 函数中,我们使用了一个 `while` 循环来不断取出给定整数的最后一位数字,并将其加入到反转后的整数 `rev` 中。同时,我们还需要注意反转后的整数是否溢出的问题。最后,函数返回反转后的整数 `rev`。
在 `main` 函数中,我们使用了一个 `while` 循环来不断输入新的整数并输出其反转后的结果。
阅读全文