Open In App
Related Articles

Power Function in C/C++

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given two numbers base and exponent, the C++ or C pow() function finds x raised to the power of y i.e. x y. Basically in C/C++, the exponent value is calculated using the pow() function. The pow() function is used to calculate the power of a number in C/C++. It takes double as input and returns double as output.

We have to use #include <math.h> in C/C++  to use that pow() function in our C/C++ program.

Syntax of pow() Function

double pow (double x, double y);

pow() Function Parameters

This method takes only two arguments:

  • x: floating point base value
  • y: floating point power value

pow() Function Return Value

  • The power function returns the floating point value of x raised to the power y ( x y ).

Example of pow() Function

Input: 2.0, 5.0
Output: 32.00
Explanation: pow(2.0, 5.0) executes 2.0 raised to the power 5.0, which equals 32
Input: 5.0, 2.0
Output: 25.00
Explanation: pow(5.0, 2.0) executes 5.0 raised to the power 2.0, which equals 25

C

// C program to illustrate
// power function
#include <math.h>
#include <stdio.h>
 
int main()
{
    double x = 6.1, y = 4.8;
 
    // Storing the answer in result.
    double result = pow(x, y);
    printf("%.2lf", result);
 
    return 0;
}

                    

C++

// C++ program to illustrate
// power function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 6.1, y = 4.8;
 
    // Storing the answer in result.
    double result = pow(x, y);
 
    // printing the result upto 2
    // decimal place
    cout << fixed << setprecision(2) << result << endl;
 
    return 0;
}

                    

Output
5882.79

Time Complexity: O(log(n))

Auxiliary Space: O(1)

Working of pow() Function with Integers

The pow() function takes ‘double’ as the argument and returns a ‘double’ value. This function does not always work for integers. One such example is pow(5, 2). When assigned to an integer, it outputs 24 on some compilers and works fine for some other compilers. But pow(5, 2) without any assignment to an integer outputs 25. 

One another way can be using the round function to assign it to some integer type.

  • This is because 52 (i.e. 25) might be stored as 24.9999999 or 25.0000000001 because the return type is double. When assigned to int, 25.0000000001 becomes 25 but 24.9999999 will give output 24.
  • To overcome this and output the accurate answer in integer format, we can add 1e-9 or 0.000000001 to the result and typecast it to int e.g (int)(pow(5, 2)+1e-9) will give the correct answer(25, in the above example), irrespective of the compiler.

Example 1: C/C++ Program to demonstrate the behavior of the pow() function with integers.

C++

// C++ program to illustrate
// working with integers in
// power function
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a, b;
 
    // Using typecasting for
    // integer result
    a = (int)(pow(5, 2) + 0.5);
    b = round(pow(5,2));
    cout << a << endl << b ;
 
    return 0;
}

                    

C

// C program to illustrate
// working with integers in
// power function
#include <math.h>
#include <stdio.h>
 
int main()
{
    int a, b;
 
    // Using typecasting for
    // integer result
    a = (int)(pow(5, 2) + 1e-9);
    b = round(pow(5,2));
    printf("%d \n%d", a, b);
 
    return 0;
}

                    

Output
25 
25

Time Complexity: O(log(n))
Auxiliary Space: O(1)



Last Updated : 31 Oct, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads