21xrx.com
2024-11-10 00:35:57 Sunday
登录
文章检索 我的文章 写文章
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函数来判断其是否为回文数,并输出相应结果。

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

  
  

评论区

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