当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Power用法及代码示例


给定两个数字的底数和指数,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)



相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Power Function in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。