Related Articles

# C Program to reverse the digits of a number using recursion

• Last Updated : 12 Oct, 2020

Given an integer N, the task is to reverse the digits of given integer using recursion.

Examples:

Input: N = 123
Output: 321
Explanation:
The reverse of the given number is 321.

Input: N = 12532
Output: 23521
Explanation:
The reverse of the given number is 23521.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Follow the steps below to solve the problem:

• Recursively iterate every digit of N.
• If the current value of N passed is less than 10, return N.

if(num < 10)
return N;

• Otherwise, after each recursive call (except the base case), return the recursive function for next iteration:

return reverse(N/10) + ((N%10)*(pow(10, (floor(log10(abs(N)))))))

where, floor(log10(abs(x))) gives the count of digits of x
((x%10)*(pow(10, (floor(log10(abs(x))))))) places the extracted unit place digits (x%10) to their desired positions

Below is the implementation of the above approach:

## C

 `// C program for the above approach ` ` `  `#include ` `#include ` `#include ` ` `  `// Function to reverse the digits of ` `// the given integer ` `int` `reverse(``int` `N) ` `{ ` `    ``return` `((N <= 9)) ` `               ``? N ` `               ``: reverse(N / 10) ` `                     ``+ ((N % 10) ` `                        ``* (``pow``(10, ` `                               ``(``floor``(``log10``( ` `                                   ``abs``(N))))))); ` `} ` ` `  `// Utility function to reverse the ` `// digits of the given integer ` `void` `reverseUtil(``int` `N) ` `{ ` `    ``// Stores reversed integer ` `    ``int` `result = reverse(N); ` ` `  `    ``// Print reversed integer ` `    ``printf``(``"%d"``, result); ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``// Given integer N ` `    ``int` `N = 123; ` ` `  `    ``// Function Call ` `    ``reverseUtil(N); ` ` `  `    ``return` `0; ` `} `

Output:

```321
```

Time Complexity: O(log10N)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :