判断一个数是否为回文的 C++程序
该程序使用 while 循环反转由用户输入的整数。然后用 if 语句检查反转后的数是否等于原数。
要理解此示例,您应该具备以下 C++ 编程 主题的知识:
该程序从用户处获取一个整数,然后将该整数取反。
如果反转的整数等于用户输入的整数,则该数字是回文,否则该数字不是回文。
示例:检查回文数
#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;
}
输出 1
Enter a positive number: 12321
The reverse of the number is: 12321
The number is a palindrome.
输出 2
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
。
例如:在数 123
中,3
是在个位, 2
是十位, 1
是百位。
因此,要将 4
添加到 123
之后,我们需要将当前的数字向左移位,所以现在 1
是在千位,2
在百位,3 在十位, 4 在个位。
这可以通过将 123
乘以 10
得到 1230
并加上数字 4
得到 1234
来轻松完成。在上面的代码中也是如此。
当 do while
循环最终结束时, rev
中保存了反转后的数字,然后将它与原始数字 n
进行比较.
如果数字相等,则原始数字是回文,否则不是。