C Program to Calculate the Power of a Number

Calculating the power of a number is a common task in programming. This article will explore various C Program to Calculate the Power of a Number, including iterative, recursive, and using built-in library functions. Each method will be explained with examples and outputs.

Prerequisites

Before diving into the examples, you should be familiar with:

  • Basic C syntax and structure.
  • Loops and conditional statements.
  • Functions in C.

Understanding Power Calculation

The power of a number can be defined as x^n, where x is the base and n is the exponent. For example, 2^3 = 8

Example 1: Using Iteration

1.1 Explanation

This method involves multiplying the base by itself the number of times specified by the exponent.

1.2 Program: Iterative Method

C
#include <stdio.h>

int power(int base, int exp) {
    int result = 1;
    for(int i = 0; i < exp; i++) {
        result *= base;
    }
    return result;
}

int main() {
    int base, exp;
    printf("Enter base: ");
    scanf("%d", &base);
    printf("Enter exponent: ");
    scanf("%d", &exp);

    printf("%d^%d = %d\n", base, exp, power(base, exp));
    return 0;
}

1.3 Output

C
Enter base: 2
Enter exponent: 3
2^3 = 8

Example 2: Using Recursion

2.1 Explanation

Recursion can be used to calculate power by breaking down the problem into smaller subproblems.

2.2 Program: Recursive Method

C
#include <stdio.h>

int power(int base, int exp) {
    if(exp == 0)
        return 1;
    else
        return base * power(base, exp - 1);
}

int main() {
    int base, exp;
    printf("Enter base: ");
    scanf("%d", &base);
    printf("Enter exponent: ");
    scanf("%d", &exp);

    printf("%d^%d = %d\n", base, exp, power(base, exp));
    return 0;
}

2.3 Output

C
Enter base: 2
Enter exponent: 3
2^3 = 8

Example 3: Using Built-in Library Function

3.1 Explanation

The C standard library provides a function pow() in the math.h header file to calculate the power of a number.

3.2 Program: Using pow() Function

C
#include <stdio.h>
#include <math.h>

int main() {
    int base, exp;
    printf("Enter base: ");
    scanf("%d", &base);
    printf("Enter exponent: ");
    scanf("%d", &exp);

    printf("%d^%d = %.0f\n", base, exp, pow(base, exp));
    return 0;
}

3.3 Output

C
Enter base: 2
Enter exponent: 3
2^3 = 8

Example 4: Optimized Recursive Method (Exponential Squaring)

4.1 Explanation

Exponential squaring is an optimized recursive method to calculate power with reduced time complexity.

4.2 Program: Exponential Squaring

C
#include <stdio.h>

int power(int base, int exp) {
    if(exp == 0)
        return 1;
    if(exp % 2 == 0) {
        int halfPower = power(base, exp / 2);
        return halfPower * halfPower;
    } else {
        return base * power(base, exp - 1);
    }
}

int main() {
    int base, exp;
    printf("Enter base: ");
    scanf("%d", &base);
    printf("Enter exponent: ");
    scanf("%d", &exp);

    printf("%d^%d = %d\n", base, exp, power(base, exp));
    return 0;
}

4.3 Output

C
Enter base: 2
Enter exponent: 3
2^3 = 8

Example 5: Using a Loop for Floating Point Exponents

5.1 Explanation

To handle non-integer exponents, we can use a loop-based approach that multiplies the base by itself fractional times.

5.2 Program: Loop for Floating Point Exponents

C
#include <stdio.h>
#include <math.h>

double power(double base, double exp) {
    double result = 1.0;
    for(int i = 0; i < (int)exp; i++) {
        result *= base;
    }
    double fractionalPart = exp - (int)exp;
    if(fractionalPart > 0) {
        result *= pow(base, fractionalPart);
    }
    return result;
}

int main() {
    double base, exp;
    printf("Enter base: ");
    scanf("%lf", &base);
    printf("Enter exponent: ");
    scanf("%lf", &exp);

    printf("%.2f^%.2f = %.2f\n", base, exp, power(base, exp));
    return 0;
}

5.3 Output

C
Enter base: 2.5
Enter exponent: 3.2
2.50^3.20 = 18.98

Conclusion

This article explored various C Program to Calculate the Power of a Number, including iterative, recursive, and using the built-in pow() function. Each method has its advantages and can be chosen based on the specific requirements of the problem. By understanding these different approaches, you can efficiently compute the power of a number in various scenarios.