# Palindrome Number Program in C++

A palindrome number is one that is the same when it is reversed. Palindrome numbers include 22, 33, 44, 55, 66, 77, 88, and 99.

## Algorithm for Palindrome Numbers

• Get the user's phone number.
• Keep the value in a temporary variable.
• Reverse the digits
• Compare the temporary number to the number in reverse.
• Print a palindrome number if both numbers are the same.
• Otherwise, do not print a palindrome number.

Let's look at a C++ palindrome program. In this program, we will take a user input and determine whether or not the integer is palindrome.

``````#include <iostream>
#include <bits/stdc++.h>
#include <stdlib>
using namespace std;
int main()
{
int num,i,sum=0,temp;
cout<<"Enter the Number=";
cin>>num;
temp=num;
while(n>0)
{
i=num%10;
sum=(sum*10)+i;
num=num/10;
}
if(temp==sum)
cout<<"Number you entered is Palindrome.";
else
cout<<"Number you entered is not Palindrome.";
return 0;
}
``````

OUTPUT

``````Enter the Number= 22
Number you entered is Palindrome.

Enter the Number= 112
Number you entered is not Palindrome.
``````

## Explanation of the above code:

User is prompted to input a positive integer, which is saved in the variable num, in the above code. The number is then stored in a variable called num, which is used to check whether the original number has been reversed. Code number = num% 10; used to divide the last digit of a number within a do ... while loop. The time frame is then updated with this digit. To add a digit to the nth place in a number, we must first multiply the current data in the 10-degree shift before adding the digit. In the number 112, for example, 2 are in the 0th position, 1 in the first place, and 1 in the hundredth place. To add another number 4 after 112, we must shift the present numbers to the left, putting 1 in the thousandth position, 1 in the first place, 2 in the first place, and 4 in the 0th place. This is simply accomplished by multiplying 112 by 10 to get 1120, then adding 4 to get 1124. The code above does the same thing. We have a reversed number in temp when they do while loop eventually stops. The original number, num, is then compared to this number. The original number is a palindrome if the numbers are equal; otherwise, it is not.

## Using Function to Check Palindrome Number

Let’s look at a example of a program using function to check palindrome number in c++:

``````#include<iostream>
#include<bits/stdc++.h>
#include<stdlib>
using namespace std;
int check_Palindrome(int);
int main()
{
int num, value;
cout<<"Enter the Number: ";
cin>>num;
value = check_Palindrome(num);
if(value==0)
cout<<"\nIt is a Palindrome Number";
else
cout<<"\nIt is not a Palindrome Number";
cout<<endl;
return 0;
}
int check_Palindrome(int n)
{
int temp, rem, rev=0;
temp = n;
while(temp>0)
{
rem = temp%10;
rev = (rev*10)+rem;
temp = temp/10;
}
if(rev==n)
return 0;
else
return 1;
}
``````

OUTPUT:

``````Enter the Number: 55
It is a Palindrome
…………………………………
Process Executed in 0.134 seconds
Press any key to continue.
``````

## Using String () Method to Check Palindrome Number

• Because the range of long long int does not fulfil the supplied number when the number of digits reaches 1018, we can't treat it as an integer.
• Assume that input is a unit of characters. Start the loop from the beginning to the length / 2, check the first letter (number) to the last letter of the letter unit, the second to the last letter, and so on ....The string would not be a palindrome if any characters were mismatched.

Let’s as look at an example of a program in C++ using string() method to check a number is palindrome or not:

``````// C++ implementation of the above approach
#include <iostream>
#include <bits/stdc++.h>
#include <stdlib>
using namespace std;
// Function to check palindrome
int check_Palindrome(string str)
{
int l = str.length();
for (int i = 0; i < l / 2; i++) {

if (str[i] != str[l - i - 1])
return false;
}

return true;
}
// Driver Code
int main()
{ // taking number as string
string st
= "11332255667799880000008899776655332211";
if (check_Palindrome(st) == true)
cout << "Yes";
else
cout << "No";
return 0;
}
``````

OUTPUT:

``````Yes
…...
Process Executed in 0.022 seconds
Press any Key to continue.
``````

## Program to print all Palindrome Number in the given interval

``````#include <iostream>
using namespace std;
bool is_Palindrome(int num){
//copy the 'num' to 'temp' and initialize 'rev' with 0
int temp=num, rev=0;
//while loop to revesere the 'num'
while(temp>0){
rev = rev*10 + temp%10;
temp = temp/10;
}
return rev == num;
}
int main()
{
int low, upper;
cout<<"Enter a lower interval value \n";
cin >> low;
cout<<"Enter a upper interval value \n";
cin >> upper;
for(int i=low; i<=upper; i++){
if(is_Palindrome(i))
cout << i << " ";
}
return 0;
}
``````

OUTPUT:

``````Enter a lower interval value
9
Enter a upper interval value
100
9 11 22 33 44 55 66 77 88 99
``````

## Explanation:

The is_Palindrome() method returns true if the specified number num is a palindrome; otherwise, it returns false. We use the for loop to go through each integer in the specified interval, then pass the result to the is_Palindrome() function to see if it's a palindrome.