21xrx.com
2024-09-20 06:05:16 Friday
登录
文章检索 我的文章 写文章
C++实现数字反转
2023-06-29 08:30:19 深夜i     --     --
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++数字反转的实现方法有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复