21xrx.com
2024-11-08 22:13:02 Friday
登录
文章检索 我的文章 写文章
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中的“回文数”题目。

  
  

评论区

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