21xrx.com
2024-12-27 19:27:04 Friday
登录
文章检索 我的文章 写文章
C++中判断回文数的方法
2023-07-04 01:13:22 深夜i     --     --
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等,使得代码更加简洁、易读。

  
  

评论区

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