21xrx.com
2025-03-21 18:13:03 Friday
文章检索 我的文章 写文章
C++中判断回文数的方法
2023-07-04 01:13:22 深夜i     100     0
C++ 回文数 判断方法

回文数是指正着读和倒着读都一样的数字,例如121、1221等,我们可以使用C++语言来判断一个数是否为回文数。下面介绍两种判断方法。

## 方法一

将数字转换成字符串,然后将字符串反转,比较反转后的字符串是否和原来的字符串相同即可。具体实现代码如下:

#include <iostream>
#include <string>
#include <algorithm> // std::reverse
using namespace std;
bool isPalindrome(int num) {
  string numStr = to_string(num); // 将数字转换成字符串
  string numStrReversed = numStr;
  reverse(numStrReversed.begin(), numStrReversed.end()); // 字符串反转
  return numStr == numStrReversed;
}
int main() {
  int num;
  cout << "请输入一个数字:";
  cin >> num;
  if (isPalindrome(num))
    cout << "该数字是回文数。" << endl;
   else
    cout << "该数字不是回文数。" << endl;
  
  return 0;
}

## 方法二

使用数学法,依次对数字的每一位进行处理,比较处理后的结果是否和原数字相同。具体实现代码如下:

#include <iostream>
using namespace std;
bool isPalindrome(int num) {
  int temp = num, reversed = 0;
  while (temp > 0) {
    reversed = reversed * 10 + temp % 10;
    temp /= 10;
  }
  return num == reversed;
}
int main() {
  int num;
  cout << "请输入一个数字:";
  cin >> num;
  if (isPalindrome(num))
    cout << "该数字是回文数。" << endl;
   else
    cout << "该数字不是回文数。" << endl;
  
  return 0;
}

以上两种方法都能判断一个数字是否为回文数,其中第二种方法相对于第一种方法来说,更加高效。当然,我们还可以在代码中加入更新的C++11标准中提供的一些新特性,例如auto等,使得代码更加简洁、易读。

  
  

评论区