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

## Monday, 26 March 2018

#### 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.

` `