Skip to main content

Featured

C Program to Solve Two Sum Using Brute Force (With Algorithm & Output)

 Introduction The Two Sum problem is a popular coding interview question where we must find two indices of an array whose values add up to a given target. This program demonstrates a simple brute-force solution in C using nested loops and dynamic memory allocation. Problem Statement Given an integer array and a target value, return the indices of the two numbers such that they add up to the target. Each input has exactly one solution, and the same element cannot be used twice. The result should return the indices, not the values. If no solution exists, return NULL.  Algorithm / Logic Explanation Start the program. Traverse the array using a loop from index 0 to numsSize - 1 . Inside this loop, use another loop starting from i + 1 to numsSize - 1 . For every pair (i, j) , check if nums[i] + nums[j] == target . If condition becomes true: Allocate memory for 2 integers using malloc() . Store indices i and j . Set returnSize = 2 . Return the result poi...

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

Comments

Popular Posts

๐ŸŒ™