Write a recursive function in C programming to find reverse of any number. How to find reverse of any number in C programming using recursion. Finding reverse of any number using recursion in C programming.
Example:
Input number: 12345
Output reverse: 54321
reverse(0) = 0 {Base condition}
reverse(n) = (n%10 * pow(10, digits)) + reverse(n/10){where digit is the total number of digits in number}
Happy coding ;)
Example:
Input number: 12345
Output reverse: 54321
Required knowledge
Basic C programming, Function, RecursionLogic to find reverse of number using recursion
We have already seen how to find reverse of any number using simple loops here we will see how efficiently we can find reverse of any given number using recursion. If you have gone through the reverse procedure through loop you probably know that reversing procedure includes four basic steps i.e.- Multiply the rev variable by 10.
- Find the last digit of the given number.
- Add the last digit just found to rev.
- Divide the original number by 10 to eliminate the last digit, which is not needed anymore.
reverse(0) = 0 {Base condition}
reverse(n) = (n%10 * pow(10, digits)) + reverse(n/10){where digit is the total number of digits in number}
Program to find reverse using recursion
/**
* C program to find reverse of any number using recursion
*/
#include <stdio.h>
#include <math.h>
/* Fuction declaration */
int reverse(int num);
int main()
{
int num, rev;
/* Reads number from user */
printf("Enter any number: ");
scanf("%d", &num);
/*Calls the function to reverse number */
rev = reverse(num);
printf("Reverse of %d = %d", num, rev);
return 0;
}
/**
* Recursive function to find reverse of any number
*/
int reverse(int num)
{
int digit;
//Base condition
if(num==0)
return 0;
//Finds total number of digits
digit = (int)log10(num);
return ((num%10 * pow(10, digit)) + reverse(num/10));
}
Output
Enter any number: 12345
Reverse of 12345 = 54321
Reverse of 12345 = 54321
Happy coding ;)