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