Search This Blog
Welcome to 1printf(), your ultimate destination for C, C++, Linux, Data Structures, and Microcontroller programming! ๐ ๐นLearn advanced coding techniques in C& C++ ๐นMaster Linux internals & shell scripting ๐นDeep dive into Data Structures & Algorithms ๐นExplore Embedded Systems & Microcontrollers (8051,UART, RTOS) ๐นGet hands-on coding tutorials, project ideas,and interview preparation tips Whether you're a beginner or an experienced programmer, this channel will help you
Featured
C Program to Check Palindrome Number With Explanation & Examples
Intro:
A palindrome is a number or string that reads the same forwards and backwards. In this article, you will learn how to check whether a given number is a palindrome using C. This logic is useful in coding interviews, competitive programming, and problems related to data validation and pattern checking.Problem Statement:
A palindrome number is a number that remains the same when its digits are reversed. The task is to take an integer as input and check whether it reads the same forward and backward. The expected output is either “Palindrome” or “Not Palindrome.” This concept is useful in pattern recognition, coding interviews, digital signal processing, and validation systems where symmetric numeric sequences need to be identified.
Logic Explanation:
- Read the integer and store a copy as original.
- Initialize reversed = 0.
- While n != 0:
- digit = n % 10 (extract last digit)
- reversed = reversed * 10 + digit (append digit)
- n = n / 10 (drop last digit)
- Compare reversed with original. If equal → Palindrome.
pseudocode:
START
READ n
original ← n
reversed ← 0
WHILE n ≠ 0
digit ← n % 10
reversed ← (reversed * 10) + digit
n ← n / 10 (integer division)
END WHILE
IF reversed = original THEN
PRINT "Palindrome"
ELSE
PRINT "Not Palindrome"
END IF
END
Code:
#include <stdio.h>
int main()
{
int n, digit, reversed = 0, original;
printf("Enter the number:\n");
scanf("%d", &n);
original = n; // Store original number
while (n != 0)
{
digit = n % 10; // Extract last digit
reversed = reversed * 10 + digit; // Append digit
n = n / 10; // Drop last digit
}
if (reversed == original)
printf("%d is palindrome\n", original);
else
printf("%d is not palindrome\n", original);
return 0;
}
Sample Input / Output:
Example 1
Input: 121
Output: 121 is palindrome
Example 2
Input: 143
Output: 143 is not palindrome
Example 3
Input: 10101
Output: 10101 is palindrome
Explanation of Code:
The program uses four main variables: n (the working copy of input), original (stores the input so we can compare later), reversed (accumulates the reversed number), and digit (holds the extracted last digit). After reading the integer into n, we immediately copy it to original so the original value is preserved while n is modified.
Flow of control: the while (n != 0) loop iterates once per digit. Inside the loop we extract the last digit with digit = n % 10. The statement reversed = reversed * 10 + digit shifts previously collected digits left by one decimal place and appends the new digit at the units place. Then n = n / 10 removes the last digit from n (integer division). After the loop ends, reversed contains the numeric reversal of the original input. A simple equality test if (reversed == original) determines whether the number is a palindrome.
Why it works: extracting digits from right-to-left and building reversed by repeated multiply-and-add reproduces the exact mirror of the original sequence of digits.
Memory behavior: the program uses constant extra space (O(1)) only a few integer variables so it is memory efficient and safe for typical integer ranges.
Performance: time complexity is linear in the number of digits (O(d)),
Why this approach is efficient: making this approach optimal for palindrome checks on integers.
Edge Cases:
When checking palindrome numbers, inputs like 0 and single-digit numbers should always return true because their reverse is the same. Large integers may overflow if they exceed the range of int, so using long long is safer. Negative numbers are not considered palindromes in this method because the minus sign cannot be reversed symmetrically. Special characters or non-numeric input will also cause invalid input behavior.
Conclusion:
This program efficiently checks whether a number is a palindrome by reversing its digits and comparing it with the original value. Palindrome detection is useful in coding interviews, numeric pattern problems, and digital logic applications. The concept also helps beginners strengthen their understanding of loops, conditions, and number manipulation in C.
FAQs
What is a palindrome?
A palindrome is a number or string that reads the same forward and backward. Examples include 121, 1331, and 12321. The logic is simple: reverse the digits (or characters) and compare both forms.
Can we check palindrome using recursion?
Yes. Instead of using a loop, you can recursively extract digits and build the reversed number. However, the iterative approach is faster and uses less memory, so it is preferred for competitive programming.
Does this method work for any number of digits?
Absolutely. This algorithm works for all positive integers, regardless of digit count. It is not limited like the 3-digit Armstrong logic.
Can we solve this for negative numbers?
By definition, negative numbers are not considered palindromes because of the minus sign.
Is this algorithm efficient?
Yes. The time complexity is O(d) where d is the number of digits, making it optimal for number reversal problems.
Keywords:
-
C palindrome program
-
check palindrome number in C
-
reverse number logic in C
-
C programming examples
-
number manipulation in C
-
beginner C programs
-
palindrome algorithm in C
-
C language coding practice
-
C interview questions
-
logic building in C
-
C programs for beginners
-
how to reverse digits in C
Hashtags:
#cprogramming #clanguage #coding #programming #cprogram #learncoding #codetutorial #cplusplus #logicbuilding #interviewprep #1printf #techlearning
Related Posts: -
C Program to Check Palindrome String
-
C Program to Reverse a String Using Pointers
-
C Program to Find Armstrong Number
-
C Program to Check Perfect Number
C Program to Reverse a Number
Popular Posts
C++ Program for Hybrid Inheritance (All Types Together)
- Get link
- X
- Other Apps
C++ Program for Function Overloading Example
- Get link
- X
- Other Apps
Comments
Post a Comment