Skip to content
Related Articles
Open in App
Not now

Related Articles

Power Function in C/C++

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 17 Sep, 2022
Improve Article
Save Article

Given two numbers base and exponent, pow() function finds x raised to the power of y i.e. xy. Basically in C exponent value is calculated using the pow() function. pow() is function to get the power of a number, but we have to use #include<math.h> in c/c++  to use that pow() function.  then two numbers are passed. Example – pow(4 , 2); Then we will get the result as 4^2, which is 16. 
Example: 
 

Input: 2.0, 5.0
Output: 32
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
Explanation: 
pow(5.0, 2.0) executes 5.0 raised to
the power 2.0, which equals 25

Syntax: 
 

double pow(double x, double y);

Parameters: The method takes two arguments: 
 

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

Program: 
 

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++




// CPP 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 arguments 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 above example), irrespective of the compiler.

 

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;
}


C++




// CPP 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;
}


Output: 
25
25

Time Complexity: O(log(n))

Auxiliary Space: O(1)

This article is contributed by Arushi Dhamija and Jatin Goyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!