The function Power, which raises the integer number x to the power n, can be defined recursively as follows:
Power(x, n) = 1 for n = 0
Power(x, n) = x * Power(x, n-1) for n > 0
(i) Using the above definition write the recursive function Power(x, n) in C.
(ii) Rewrite the recursive function Power(x, n) in an iterative form.
(iii) Write the main function and test the above-written functions. Note: You can write one program and test the functions or you may write two separate programs for each part (i) and (ii).
#include <stdio.h>
#include <stdlib.h>
int Power1(int x, int n)
{
if (n == 0)
return 1;
else if (n > 0)
return x * Power1(x, n - 1);
else
return 1;
}
int Power2(int x, int n)
{
long int result = x;
int i;
if (n == 0)
return 1;
else if (n > 0)
{
for (i = 0; i < n - 1; i++)
result = result * x;
return result;
}
else
return 1;
}
int main()
{
int x;
int n;
printf("Please enter a number: ");
scanf_s("%d", &x);
printf("Please enter a power: ");
scanf_s("%d", &n);
printf("recursive function Power(x, n) %ld \n", Power1(x, n));
printf("iterative function Power(x, n) %ld \n", Power2(x, n));
return 0;
}
Comments
Leave a comment