📜  C++示例 判断一个数是否为回文数(对偶)(1)

📅  最后修改于: 2023-12-03 15:14:04.512000             🧑  作者: Mango

判断 回文数

回文数是指正反读都一样的数字,如 121、1221、12321 等。本文将介绍如何使用 C++ 判断一个数是否为回文数。

解题思路

判断一个数是否为回文数,关键在于将该数的每一位数字分离出来,然后将其倒序组成一个新的数,最后与原数进行对比即可。

举例说明,假设我们要判断数 12321 是否为回文数:

  1. 将数 12321 分离出每一位数字,得到个位数字为 1,十位数字为 2,百位数字为 3,千位数字为 2,万位数字为 1;
  2. 将这些数字倒序组成一个新的数 12321,即 12321;
  3. 将倒序组成的数 12321 与原数 12321 进行对比,发现它们相等,因此 12321 是回文数。
代码实现

以下是使用 C++ 实现判断回文数的代码:

#include <iostream>

using namespace std;

bool is_palindrome(int num) {
    int tmp = num;
    int reverse = 0;

    while (tmp != 0) {
        reverse = reverse * 10 + tmp % 10;
        tmp /= 10;
    }

    return num == reverse;
}

int main() {
    int num = 12321;

    if (is_palindrome(num)) {
        cout << num << " is a palindrome number." << endl;
    } else {
        cout << num << " is not a palindrome number." << endl;
    }

    return 0;
}

代码中,我们定义了一个 is_palindrome() 函数来判断一个数是否为回文数。该函数接收一个整数参数 num,将 num 的每一位数字分离出来,倒序组成一个新的数,然后与 num 进行对比,最终返回判断结果。

main() 函数中,我们定义了一个整数变量 num 并赋值为 12321,然后调用 is_palindrome() 函数判断它是否为回文数,并输出相应的信息。

运行结果

编译并运行上述代码,将会输出以下信息:

12321 is a palindrome number.

我们可以看到,程序正确地判断出了数 12321 是回文数。