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

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

**Examples:**

Input:N = 123Output:321Explanation:

The reverse of the given number is 321.

Input:N = 12532Output:23521Explanation:

The reverse of the given number is 23521.

**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 <math.h> ` `#include <stdio.h> ` `#include <stdlib.h> ` ` ` `// 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(log_{10}N)**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****.**