21xrx.com
2025-03-27 10:12:11 Thursday
文章检索 我的文章 写文章
C++实现回文数
2023-07-09 06:55:54 深夜i     --     --
C++ 回文数 实现

回文数指的是正着读和倒着读都一样的数。比如121、1221、5555等都是回文数。在C++中实现回文数的判断可以使用字符串的方法。

首先,将数转化为字符串。可以使用C++中的to_string()函数将一个整数转换为字符串类型。代码如下:

int num = 121;
string str_num = to_string(num);

接下来,判断字符串是否为回文字符串。可以使用双指针法,分别从字符串的两端向中间遍历,判断两端的字符是否相等。如果相等,则继续比较中间的字符,直到遍历完成。代码如下:

bool isPalindrome(string s) {
  int n = s.size();
  int i = 0, j = n - 1;
  while (i < j) {
    if (s[i] != s[j])
      return false;
    
    i++;
    j--;
  }
  return true;
}

将以上两部分代码结合起来,就可以判断一个数是否为回文数了。完整代码如下:

#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(int num) {
  string str_num = to_string(num);
  int n = str_num.size();
  int i = 0, j = n - 1;
  while (i < j) {
    if (str_num[i] != str_num[j])
      return false;
    
    i++;
    j--;
  }
  return true;
}
int main() {
  int num = 121;
  bool res = isPalindrome(num);
  if (res)
    cout << num << " is a palindrome number." << endl;
   else
    cout << num << " is not a palindrome number." << endl;
  
  return 0;
}

在以上代码中,输入的数为121,输出为“121 is a palindrome number.”。

通过以上实现,我们可以在C++中判断一个数是否为回文数。这种方法可以应用于一些需要判断回文数的题目中,如LeetCode中的“回文数”题目。

  
  

评论区