Number Palindrome in C with deep explanation of logic in loop with example step by step. - Unleash-Coding-Skills

Monday, 26 March 2018

Number Palindrome in C with deep explanation of logic in loop with example step by step.




Number Palindrome :

Suppose consider a number 121, the reverse of that number is 121 Hence we can say 121 is a palindrome.Similary some other examples 111,101....

So to check this first we need to reverse the number.We can see the logic in program how to reverse and compare.

#include <stdio.h>

void main()

{

    int num, temp, remainder, reverse = 0;

    printf("Enter an integer \n");

    scanf("%d", &num);

    /*  original number is stored at temp */

    temp = num;

    while (num > 0)

    {
//Here is main logic 
        remainder = num % 10;

        reverse = reverse * 10 + remainder;

        num /= 10;

    }

    printf("Given number is = %d\n", temp);

    printf("Its reverse is  = %d\n", reverse);

    if (temp == reverse)

        printf("Number is a palindrome \n");

    else

        printf("Number is not a palindrome \n");

}
 
Input : 121
Output: 
      Number is a palindrome
 
In that main logic suppose consider an example 121:The loop goes as follows.

 

iteration1:

num = 121 > 0 so it executes the loop
remainder = 121%10=1
reverse = 0 * 10 +1 = 1
num = 121/10 = 12

iteration2: 

num = 12 > 0 so it executes the loop
remainder = 12%10=2
reverse = 1* 10 +2 = 12
num = 12/10 = 1

iteration3: 

num = 1 > 0 so it executes the loop
remainder = 1%10=1
reverse = 12* 10 +1 = 121
num = 1/10 =0

Now again check for  0 > 0 at while loop  condition it fails and the reverse=121 now is reverse of the input number.

Now compare original number in temp and reverse, if they are same then it is a palindrome else it is not a palindrome.

Happy Coding......

 

 



 

No comments:

Post a comment