21xrx.com
2024-12-23 01:14:28 Monday
登录
文章检索 我的文章 写文章
C++实现回文数判断
2023-07-06 04:42:23 深夜i     --     --
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;

}

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

  
  

评论区

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