C Program to Check Palindrome Number

Checking whether a number is a palindrome is a common problem in C programming. It helps beginners understand loops, conditional statements, and number manipulation.

A palindrome number is a number that remains the same when its digits are reversed.

1. Understanding the Problem

We need to check whether a given number is equal to its reverse.

Number: 121 → Palindrome
Number: 123 → Not Palindrome
Number: 444 → Palindrome

2. Algorithm Using Loop

1. Read the number from the user.

2. Store the original number in a variable.

3. Initialize reverse = 0.

4. While number is not 0:

- Extract digit: digit = num % 10

- Update reverse: reverse = reverse * 10 + digit

- Remove last digit: num /= 10

5. Compare reverse with original number.

6. If equal → palindrome, else not.

3. C Program Using While Loop

C
#include <stdio.h>

int main() {
    int num, original, reverse = 0, digit;

    printf("Enter a number: ");
    scanf("%d", &num);

    original = num;

    while(num != 0) {
        digit = num % 10;
        reverse = reverse * 10 + digit;
        num /= 10;
    }

    if(original == reverse)
        printf("Palindrome number\n");
    else
        printf("Not a palindrome\n");

    return 0;
}
Enter a number: 121
Palindrome number

4. C Program Using For Loop

C
#include <stdio.h>

int main() {
    int num, original, reverse = 0, digit;

    printf("Enter a number: ");
    scanf("%d", &num);

    original = num;

    for(; num != 0; num /= 10) {
        digit = num % 10;
        reverse = reverse * 10 + digit;
    }

    if(original == reverse)
        printf("Palindrome number\n");
    else
        printf("Not a palindrome\n");

    return 0;
}

5. Using Recursion

C
#include <stdio.h>

int reverseNum(int num, int rev) {
    if(num == 0)
        return rev;
    return reverseNum(num / 10, rev * 10 + num % 10);
}

int main() {
    int num;
    printf("Enter a number: ");
    scanf("%d", &num);

    int reversed = reverseNum(num, 0);

    if(num == reversed)
        printf("Palindrome number\n");
    else
        printf("Not a palindrome\n");

    return 0;
}

6. Using String Method

We can also convert the number to a string and compare characters from both ends.

C
#include <stdio.h>
#include <string.h>

int main() {
    char num[20];
    int i, len, flag = 1;

    printf("Enter a number: ");
    scanf("%s", num);

    len = strlen(num);

    for(i = 0; i < len / 2; i++) {
        if(num[i] != num[len - i - 1]) {
            flag = 0;
            break;
        }
    }

    if(flag)
        printf("Palindrome number\n");
    else
        printf("Not a palindrome\n");

    return 0;
}

7. Common Mistakes

1. Not storing the original number before reversing.

2. Incorrect reverse logic (missing multiplication by 10).

3. Ignoring negative numbers.

4. Using incorrect loop conditions.

8. Applications

1. Used in number pattern problems.

2. Useful in algorithm design and logic building.

3. Helps in competitive programming challenges.

Conclusion

Checking palindrome numbers in C is a great way to practice loops, recursion, and logic building. Multiple approaches allow flexibility depending on the problem context.

Mastering such problems strengthens your problem-solving skills and prepares you for coding interviews.