21xrx.com
2025-03-31 14:56:54 Monday
文章检索 我的文章 写文章
C++实现回文数判断
2023-07-06 04:42:23 深夜i     13     0
C++ 回文数 实现 判断

回文数是指正读和反读都相同的数字,例如121、111、12321都是回文数。判断一个数字是否是回文数是编程中经常遇到的一个问题。在C++中实现回文数判断也是比较简单的。

在C++中,我们可以通过将数字转换成字符串,再逆序比较字符串的方式来实现回文数判断。具体步骤如下:

1. 将数字转换成字符串

使用C++中的to_string()函数可以将数字转换成对应的字符串,例如:

int num = 12321;

string str = to_string(num);

2. 反转字符串

将字符串进行反转,可以使用C++中的reverse()函数,例如:

reverse(str.begin(), str.end());

3. 比较字符串

将字符串反转之后,与原字符串比较是否相等即可判断是否是回文数,例如:

bool isPalindrome = (str == to_string(num));

完整代码如下:

#include <iostream>
#include <algorithm>
using namespace std;
bool isPalindrome(int num) {
  string str = to_string(num);
  reverse(str.begin(), str.end());
  return str == to_string(num);
}
int main() {
  int num = 12321;
  bool result = isPalindrome(num);
  if (result)
    cout << num << " is a palindrome number.";
   else
    cout << num << " is not a palindrome number.";
  
  return 0;
}

在实际应用中,我们可能会需要对多个数字进行回文数判断,可以将上面的代码进行封装,实现一个函数,如下:

#include <iostream>
#include <algorithm>
using namespace std;
bool isPalindrome(int num) {
  string str = to_string(num);
  reverse(str.begin(), str.end());
  return str == to_string(num);
}
void checkPalindrome(int *nums, int len) {
  for (int i = 0; i < len; i++) {
    bool result = isPalindrome(nums[i]);
    if (result) {
      cout << nums[i] << " is a palindrome number." << endl;
    } else {
      cout << nums[i] << " is not a palindrome number." << endl;
    }
  }
}
int main() {
  int nums[] = 123456789;
  int len = sizeof(nums) / sizeof(nums[0]);
  checkPalindrome(nums, len);
  return 0;
}

通过封装后的函数,可以方便地对多个数字进行回文数判断。

  
  

评论区

请求出错了