C program to find power of a number using recursion

C program to find power of a number using recursion

This C program is to find power of a number using recursion.For example if base is 2 and exponent is 3 then the power of a number is 23 = 8.

Logic

We include one base case i.e. when exponent is zero then we return 1 and a non base case i.e. multiply base with recursive call to power with expopnent decreased by 1.

Dry Run of the Program

Take input as base=2 and power=3

We enter function power()

int power(int b,int e)

b=2 and e=3

if(e==0) false

else

return (b*power(b,e-1)); i.e. return (2*power(2,3-1)); i.e. return (2*power(2,2));

A recursive call[power(2,2)]

if(e==0) false

else

return (b*power(b,e-1)); i.e. return (2*power(2,2-1)); i.e. return (2*power(2,1));

A recursive call[power(2,1)]

if(e==0) false

else

return (b*power(b,e-1)); i.e. return (2*power(2,1-1)); i.e. return (2*power(2,0));

A recursive call[power(2,0)]

if(e==0) true

return 1

So now we will have

1    … power(2,0)

2*1 = 2    … power(2,1)

2*2 = 4    … power(2,2)

2*4 = 8   …power(2,3) ….final answer

Program

#include <stdio.h>
 
int power(int b,int e)
{
    if(e==0)
        return 1;
    else 
        return (b*power(b,e-1));
}
 
void main()
{
    int base,exponent;
    printf("Enter the base\n");
    scanf("%d",&base);
    printf("Enter the exponent\n");
    scanf("%d",&exponent);

    printf("Power(%d^%d) = %d\n",base,exponent,power(base,exponent));
}

Output

Share Me!