📜  用于检查数字是否为回文的C++程序

📅  最后修改于: 2020-09-25 06:23:26             🧑  作者: Mango

该程序使用while循环反转整数(由用户输入)。然后,使用if语句检查反向编号是否等于原始编号。

该程序从用户那里获取一个整数,并且该整数被取反。

如果反向整数等于用户输入的整数,则该数字为回文数,如果不是,则该数字不是回文数。

示例:检查回文数

#include 
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;
}

输出

Enter a positive number: 12321
The reverse of the number is: 12321
The number is a palindrome.
Enter a positive number: 12331
The reverse of the number is: 13321
The number is not a palindrome.

在上述程序中,要求use输入一个正数,该正数存储在变量num

然后将数字保存到另一个变量n以便在原始数字反转后对其进行检查。

在do ... while循环中,使用代码digit = num % 10;分隔数字的最后一位digit = num % 10; 。然后将此数字添加到rev变量。

在将digit添加到rev之前,我们首先需要将rev变量中的当前数据乘以10,以便将数字添加到数字的第n

例如:在数123中,图3是在零位,2在百元举行的一个地方和1。

因此,要添加另一个号码4 123之后,我们需要将当前的数字向左移位,所以现在1是千举行,2中的一个地方,3是一个在零举行和4 地方。

通过将123乘以10(得出1230)并加上数字4(得出1234),可以很容易地做到这一点。在上面的代码中也是如此。

当do while循环最终结束时,我们在rev有一个相反的数字。然后将此数字与原始数字n

如果数字相等,则原始数字为回文,否则为非。