In this post I am going to explain you how to find the power of a number using recursion.
Here we input base and power of number and find the power of a number using recursion by help of C programming.
Example:
Input
Input base number: 5
Input power: 2
Output
2 ^ 5 = 25
Required knowledge:
- Basic C Programming, if else, Functions and recursion.
- Also know power of a number using pow() and without pow() function.
Declare Recursively Function To Find Power:

The above mathematical formula to find power of number.
The function accepts two numbers i.e. x and y and calculates x ^ y.
Now the above mathematical function to transform C programming context.
- First, give a meaningful name to our recursive function say pow().
- The function accepts two numbers i.e. base and exponent to calculate its power.
- Then takes two parameters base and exponent say, pow(double base, int exponent);
- Finally function return base ^ exponent i.e. double type value.
The finally declares to calculate power is double double pow(double base, int exponent);
Logic to calculate the power of a number using recursion:
So, now its time to use of logic to find out power recursively. There can be three cases while calculating power of a number.
Step-1:
If exponent is 0, then power comes to 1. This is the base condition of our recursive function.
Step-2:
If exponent is negative, then power is 1 / (x ^ -y). Which uses recursive call to pow() function for computing the value of (x ^ -1) i.e. 1 / pow(base, -expo).
Step-3:
If exponent is positive, then we calculate the power normally using x ^ y. Computing x ^ y call recursive call i.e. base * pow(base, expo - 1)
Now combine all three conditions in a single recursive function:
/** * C program to find power of a number using recursion */ #include <stdio.h> /* Power function declaration */ double pow(double base, int expo); int main() { double base, power; int expo; /* Input base and exponent from user */ printf("Enter base: "); scanf("%lf", &base); printf("Enter exponent: "); scanf("%d", &expo); // Call pow function power = pow(base, expo); //print base, expo and power upto 2 fractional places printf("%.2lf ^ %d = %f", base, expo, power); return 0; } /** * Calculate power of any number. * Returns base ^ expo */ double pow(double base, int expo) { /* Base condition */ if(expo == 0) return 1; else if(expo > 0) return base * pow(base, expo - 1); else return 1 / pow(base, -expo); }
Output:
Enter base: 2
Enter exponent: 5
2.00 ^ 5 = 32.000000
Please comment and share this post if you find helpful. And wants to join the community then WhatsApp us.