给定两个数字的底数和指数,C++ 或 C pow() 函数会查找 x 的 y 次方,即 x y。本质上在 C/C++ 中,指数值是使用 pow() 函数计算的。 pow() 函数用于计算 C/C++ 中数字的幂。它接受 double 作为输入并返回 double 作为输出。
我们必须在 C/C++ 中使用 #include <math.h> 才能在 C/C++ 程序中使用 pow() 函数。
pow()函数的语法
double pow (double x, double y);
pow()函数参数
该方法仅需要两个参数:
- x:浮点基值
- y:浮点幂值
pow()函数返回值
- power 函数返回 x 的 y 次方浮点值 (坐标 )。
pow() 函数示例
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;
}
输出
5882.79
时间复杂度:O(log(n))
辅助空间:O(1)
pow() 函数与整数的工作
pow() 函数以‘double’ 作为参数并返回‘double’ 值。此函数并不总是适用于整数。 pow(5, 2) 就是这样的一个例子。当分配给整数时,它在某些编译器上输出 24,并且对于其他一些编译器工作正常。但没有对整数进行任何赋值的 pow(5, 2) 输出为 25。
另一种方法是使用 round 函数将其分配给某种整数类型。
- 这是因为 52(即 25)可能会存储为 24.9999999 或 25.0000000001,因为返回类型是 double。当分配给 int 时,25.0000000001 变为 25,但 24.9999999 将给出输出 24。
- 为了克服这个问题并以整数格式输出准确的答案,我们可以将 1e-9 或 0.000000001 添加到结果中并将其类型转换为int例如,无论编译器如何, (int)(pow(5, 2)+1e-9) 都会给出正确的答案(25,在上面的示例中)。
示例 1:C/C++ 程序,演示带有整数的 pow() 函数的行为。
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;
}
输出
25 25
时间复杂度:O(log(n))
辅助空间:O(1)
相关用法
- C++ Power用法及代码示例
- C++ Private和Protected的区别用法及代码示例
- C++ cos()用法及代码示例
- C++ sin()用法及代码示例
- C++ asin()用法及代码示例
- C++ atan()用法及代码示例
- C++ atan2()用法及代码示例
- C++ acos()用法及代码示例
- C++ tan()用法及代码示例
- C++ sinh()用法及代码示例
- C++ ceil()用法及代码示例
- C++ tanh()用法及代码示例
- C++ fmod()用法及代码示例
- C++ acosh()用法及代码示例
- C++ asinh()用法及代码示例
- C++ floor()用法及代码示例
- C++ atanh()用法及代码示例
- C++ log()用法及代码示例
- C++ trunc()用法及代码示例
- C++ round()用法及代码示例
- C++ lround()用法及代码示例
- C++ llround()用法及代码示例
- C++ rint()用法及代码示例
- C++ lrint()用法及代码示例
- C++ log10()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Power Function in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。