Check if number is a palindrome without using modulus operator – Computer Sir Ki Class
  

Login
[lwa]



Solved Problem #CPP#3581 siteicon   siteicon   siteicon  

Problem Statement - Check if number is a palindrome without using modulus operator

Write a C++ program to collect a positive integer from the user and the check its reversed number would be a palindrome or not (same number when reversed for e.g. 121, 1331). Please use some alternate technique to find remainder instead of modulus operator.

Solution

TC++ #3581

#include 
#include
int main()
{
clrscr();
int n;
cout<<"Enter a positive integer: ";
cin>>n;
int rem,nr=0;
int nc=n;
while(nc>0)
{
int d=nc/10;
int d10=d*10;
rem=nc-d10;
nr=nr*10+rem;
nc=nc/10;
}
if(n==nr) cout<<"Palindrome";
else cout<<"Not Palindrome";
cout< getch();
return 0;
}
 
Test it !
Alternate (?) :   Related (?) :

Run Output

Enter a positive integer:1331
Palindrome

-OR-

Enter a positive integer:1321
Not Palindrome

while(nc>0){rem=nc%10;nr=nr*10+rem;nc=nc/10;}
This loop reverses the number kept in nc, the copy of original number in a variable named nr.  First nc%10 extracts the last digit then this digit is shifted left by mutiplying it to 10 and then adding the next number, then last number is dropped by using nc/10.

if(n==nr) cout<<“Palindrome”; else cout<<“Not Palindrome”;
If original number n is same is nr the reversed number then we display it as palindrome, else we display not  a palindrome.

Notes

This approach will not work on negative integers. One can find absolute number of input to remove the negative sign and then follow this approach.


Suggested Filename(s): palindrome-num.cpp, palin.cpp



Share

sunmitra| Created: 24-Feb-2018 | Updated: 15-Sep-2018|






Back