C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Functions in C

Recursive Function to reverse a number

C Program: Recursive Function to reverse a number

C

#include <stdio.h>

 

// Function declarations

int reverseNumber(int num, int rev);

 

int main() {

    int number, reversed;

 

    // Input number

    printf("Enter a number: ");

    scanf("%d", &number);

 

    // Function call (start with rev = 0)

    reversed = reverseNumber(number, 0);

 

    // Display result

    printf("Reversed number: %d\n", reversed);

 

    return 0;

}

 

// Recursive function to reverse a number

int reverseNumber(int num, int rev) {

    if (num == 0)

        return rev; // Base condition

    return reverseNumber(num / 10, rev * 10 + (num % 10));

}

Output

 
OUTPUT 1 :
Enter a number: 12345
Reversed number: 54321

OUTPUT 2 :
Enter a number: 9870
Reversed number: 789

Explanation

  1. Idea
    • The function takes the original number and a variable rev (initially 0).
    • It extracts the last digit using num % 10 and builds the reversed number recursively.
  2. How It Works

reverseNumber(1234, 0)

→ reverseNumber(123, 4)

→ reverseNumber(12, 43)

→ reverseNumber(1, 432)

→ reverseNumber(0, 4321)

→ returns 4321

  1. Base Case
    • When num becomes 0, recursion stops and the reversed number is returned.