How to check if digits of a number are Palindrome? |
Like palindrome string we want to know if the digits of the numbers are palindrome or not. This means the digits will be a mirror image from the mid point.
Logic is simple we start extracting digits from LSB. Say the number is decimal so base will be 10. Now if we divide the number by 10 then the modulo reminder is the LSB digit and same time division result will be shifted to right. Same way again we can get next digit and shift the number right. Now as we are getting digits we can construct a new number and multiply by 10 each time in the iteration. This way the digits will be shifted left in the MSB in the new number. In this way iteration will extract LSB digit from the original number and this same digit will be pushed to the MSB of the new number. Finally we will get the digits in the reversed order in the resultant number. We can compare this number if it is same as the original number. We can modify the base 10 with base 8 for octal number or base 16 for hexadecimal number or base 2 for binary number to check if the digits are palindrome and same program logic can be reused.
1 | #include <stdio.h> |
2 | int main(int argc, char *argv[]) |
3 | { |
4 | int num = 0; |
5 | int rnum = 0, onum; |
6 | printf ("Enter a number : " ); |
7 | scanf ("%d", &num); |
8 | onum = num; |
9 | do |
10 | { |
11 | rnum *= 10; |
12 | rnum += onum % 10; |
13 | rnum = onum /10; |
14 | } |
15 | while(onum > 0); |
16 | printf ("Original %d == Reverse %d (%s)", num, rnum, num == rnum ? "Same" : "Not Same"); |
17 | |
18 | } |
Enter a number : 12345 Original 12345 == Reverse 54321 (Not Same) Enter a number : 12321 Original 12321 == Reverse 12321 (Same)
You have viewed 1 page out of 248. Your C learning is 0.00% complete. Login to check your learning progress.
Similar topics related to this section
string to int, int to string, reverse decimal digits, signed and unsigned compare, palindrome digits, upper and lower 16bit of 32bit unsigned, Exchange variables, prime number,
C Programming Language (Prentice Hall Software)
Let Us C Paperback - 2006 by Yashavant Kanetkar
Understanding and Using C Pointers Core techniques for memory management
Data Structures Using C and C++ Paperback - 1998
Data Structures In C Paperback - August 11, 2008 by Noel Kalicharan