C++ pow(指数函数):求x的y次幂的值

与许多编程语言不同的是,C++ 没有指数运算符。计算数字的幂需要使用库函数。C++ 库包含一系列专门的函数,可以将库函数视为执行特定操作的“例程”。其中一个库函数叫作 pow,其目的就是计算数字的幂。

pow 函数用法示例:

area = pow(4.0,2);

该语句包含对 pow 函数的调用。括号内的数字是实参,也就是发送到函数的信息。pow 函数总是以第一个参数为底数,第二个参数为指数。在本示例中,4.0 是底数,2 是指数。结果从该函数返回,并在调用了该函数的语句中使用。

pow 函数需要浮点参数。在某些 C++ 编译器上,整数参数也可以工作,但是许多编译器要求至少第一个参数是 double 类型的,本教程也遵守此约定。从该函数返回的值始终是 double 类型数字。在这种情况下,pow 将返回 16.0 并赋值给变量 area,如图 1 所示。

pow函数的返回结果
图 1 pow 函数的返回结果

语句 area = pow(4.0,2) 与以下代数表达式是等效的:

Area = 42

以下是另外一个使用 pow 函数的示例,它将 3X63 的结果赋值给 x:

x = 3 * pow(6.0, 3);

以下语句显示了底数为 5、指数为 4 的幂值:

cout << pow(5.0, 4);

可以将 pow 函数视为一个“黑箱”,它接收 2 个数字,然后发送出第 3 个数字。发出来的数字是以第一个数字为底数、第二个数字为指数的幂值,如图 2 所示。


图 2 可以将 pow 函数理解为一个“黑箱”

使用 pow 函数时应遵循一些指导原则:
  1. 程序必须包含 cmath 头文件;
  2. 在传递给函数的两个参数中,至少第一个参数应该是 double 类型的,当然也可以两个都是;
  3. 因为 pow 函数返回一个 double 值,所以被赋值的任何变量也应该是 double 类型的;

例如,在下面的语句中,变量 area 应该定义为 double 类型:

area = pow(4.0, 2);

下面的程序解决了一个简单的代数问题。它要求用户输入圆的半径,然后计算圆的面积:
// This program calculates the area of a circle. The formula for the area of a circle is PI times the radius squared. PI is 3.14159. #include <iostream>
#include <cmath> // Needed for the pow function
using namespace std;

int main()
{
    double area, radius;
    cout << "This program calculates the area of a circle. \n";
    // Get the radius
    cout << "What is the radius of the circle? ";
    cin >> radius;
    // Compute and display the area
    area = 3.14159 * pow(radius, 2);
    cout << "The area is " << area << endl;
    return 0;
}
程序输出结果为:

This program calculates the area of a circle.
What is the radius of the circle? 10
The area is 314.159

注意,该程序仅作为 pow 函数的用法演示。实际上,没有理由在这样简单的操作中使用这个函数。第 13 行可以很简单地写作:

area = 3.14159 * radius * radius;

当然,pow函数在涉及较大指数的运算中是很有用的。