21xrx.com
2025-03-27 09:26:39 Thursday
文章检索 我的文章 写文章
C++代码:判断一个数是否是回文数
2023-07-03 09:12:45 深夜i     --     --
C++ 回文数 判断

判断一个数是否是回文数是一个常见的编程问题,本文将介绍如何使用C++语言编写一个判断回文数的程序。

回文数即正反读都相同的整数,例如121、1221等,而非回文数则不同,例如123、345等。判断一个数是否是回文数需要分别比较其最高位和最低位、次高位和次低位等,如果任意一位不同则不是回文数,否则就是回文数。

下面是C++代码实现:

#include <iostream>
using namespace std;
bool isPalindrome(int x) {
  if (x < 0) return false;
  int div = 1;
  while (x / div >= 10) {
    div *= 10;
  }
  while (x > 0) {
    int left = x / div;
    int right = x % 10;
    if (left != right) return false;
    x = (x % div) / 10;
    div /= 100;
  }
  return true;
}
int main() {
  int n;
  cout << "请输入一个数:";
  cin >> n;
  if (isPalindrome(n))
    cout << n << "是回文数" << endl;
   else
    cout << n << "不是回文数" << endl;
  
  return 0;
}

首先判断输入的数x是否为负数,如果是则不是回文数,直接返回false。然后计算x的最高位,用div表示,div递增10倍,直到div不小于x。最后在while循环中不断取出x的最高位和最低位,比较其是否相同,若不同则返回false,否则继续比较下一位,直到x为0。

在主函数中,先输入一个数n,然后调用isPalindrome函数来判断其是否为回文数,并输出相应结果。

通过以上代码,可以方便地判断一个数是否是回文数,可以应用于各种场景,如密码验证、数字安全等。

  
  

评论区