21xrx.com
2025-04-07 11:22:08 Monday
文章检索 我的文章 写文章
C++实现数字反转
2023-06-29 08:30:19 深夜i     29     0
C++ 数字 反转 实现

数字反转是指将一个数字的位置颠倒,例如将123反转成321。这是一个常见的编程问题,在C++中也有多种实现方式。

一种简单的实现方式是将数字转换成字符串,然后使用字符串反转的方法将字符串翻转过来,最后再将字符串转回数字。代码如下:

#include <iostream>
#include <string>
using namespace std;
int reverse(int n) {
  string s = to_string(n);
  reverse(s.begin(), s.end());
  return stoi(s);
}
int main() {
  int num = 123;
  int rev = reverse(num);
  cout << rev;
  return 0;
}

另外一种实现方式是通过不断取模和整除获得数字的每一位,然后按位反转得到新的数字。这种方法比较复杂,但可以处理负数。代码如下:

#include <iostream>
using namespace std;
int reverse(int n) {
  int rev = 0;
  while (n != 0) {
    int digit = n % 10;
    n /= 10;
    if (rev > INT_MAX / 10 || (rev == INT_MAX / 10 && digit > 7)) return 0;
    if (rev < INT_MIN / 10 || (rev == INT_MIN / 10 && digit < -8)) return 0;
    rev = rev * 10 + digit;
  }
  return rev;
}
int main() {
  int num = 123;
  int rev = reverse(num);
  cout << rev;
  return 0;
}

无论哪种实现方式,都需要注意一些边界情况,例如整数溢出,负数等问题。希望本文能够对你了解C++数字反转的实现方法有所帮助。

  
  

评论区

请求出错了