ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C++ 程序:检查数字是否为回文 > 原文: [https://www.programiz.com/cpp-programming/examples/palindrome-number](https://www.programiz.com/cpp-programming/examples/palindrome-number) #### 该程序使用`while`循环反转整数(由用户输入)。 然后,如果使用`if`语句检查反向编号是否等于原始编号。 要理解此示例,您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题: * [C++ `while`和`do...while`循环](/cpp-programming/do-while-loop) * [C++ `if`,`if...else`和嵌套`if...else`](/cpp-programming/if-else) * * * 该程序从用户那里获取一个整数,并且该整数被取反。 如果反转的整数等于用户输入的整数,则该数字为回文,如果不是,则该数字不是回文。 ## 示例:检查回文数 ```cpp #include <iostream> using namespace std; int main() { int n, num, digit, rev = 0; cout << "Enter a positive number: "; cin >> num; n = num; do { digit = num % 10; rev = (rev * 10) + digit; num = num / 10; } while (num != 0); cout << " The reverse of the number is: " << rev << endl; if (n == rev) cout << " The number is a palindrome."; else cout << " The number is not a palindrome."; return 0; } ``` **输出** ```cpp Enter a positive number: 12321 The reverse of the number is: 12321 The number is a palindrome. ``` ```cpp Enter a positive number: 12331 The reverse of the number is: 13321 The number is not a palindrome. ``` 在上述程序中,要求使用输入一个正数,该正数存储在变量`num`中。 然后将数字保存到另一个变量`n`中,以便在原始数字反转后对其进行检查。 在`do...while`循环内,使用代码`digit = num % 10;`分隔数字的最后一位。 然后将此数字添加到`rev`变量中。 在将`num`添加到`rev`之前,我们首先需要将`rev`变量中的当前数据乘以 10,以便将数字添加到数字中的第`n`位。 例如:在数字 123 中,3 在个位,2 在十位,1 在百位。 因此,要在 123 之后再添加一个数字 4,我们需要将当前数字向左移动,所以现在 1 在千位置,2 在百位, 3 十位,4 在个位。 通过将 123 乘以 10(得到 1230)并加上数字 4(得到 1234),可以很容易地做到这一点。在上面的代码中也是如此。 当`do while`循环最终结束时,我们在`rev`中有一个相反的数字。 然后将该数字与原始数字`n`进行比较。 如果数字相等,则原始数字为回文,否则为非。