作者: 小小萌
查看: 1929|回复: 1
打印 上一主题 下一主题

[其他] C++ pow:求x的y次幂的值

[复制链接]
跳转到指定楼层
楼主
小小萌 发表于 2019-12-31 14:24:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 1929|回复: 1
与许多编程语言不同的是,C++没有指数运算符。计算数字的幂需要使用库函数。C++ 库包含一系列专门的函数,可以将库函数视为执行特定操作的“例程”。其中一个库函数叫作pow,其目的就是计算数字的幂。
pow 函数用法示例:
area = pow(4.0,2);
该语句包含对 pow 函数的调用。括号内的数字是实参,也就是发送到函数的信息。pow 函数总是以第一个参数为底数,第二个参数为指数。在本示例中,4.0 是底数,2 是指数。结果从该函数返回,并在调用了该函数的语句中使用。pow 函数需要浮点参数。在某些 C++ 编译器上,整数参数也可以工作,但是许多编译器要求至少第一个参数是 double 类型的,本教程也遵守此约定。从该函数返回的值始终是 double 类型数字。在这种情况下,pow 将返回 16.0 并赋值给变量 area,如图 1 所示。

语句area = pow(4.0,2)与以下代数表达式是等效的:
Area = 4 2
以下是另外一个使用 pow 函数的示例,它将 3X6 3的结果赋值给 x:
x= 3 * pow(6.0, 3);
以下语句显示了底数为 5、指数为 4 的幂值:
cout
可以将 pow 函数视为一个“黑箱”,它接收 2 个数字,然后发送出第 3 个数字。发出来的数字是以第一个数字为底数、第二个数字为指数的幂值,如图 2 所示。

使用 pow 函数时应遵循一些指导原则:程序必须包含 cmath 头文件;在传递给函数的两个参数中,至少第一个参数应该是 double 类型的,当然也可以两个都是;因为 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 #include // Needed for the pow function usingnamespace 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? 10The area is 314.159注意,该程序仅作为 pow 函数的用法演示。实际上,没有理由在这样简单的操作中使用这个函数。第 13 行可以很简单地写作:
area = 3.14159 * radius * radius;
当然,pow函数在涉及较大指数的运算中是很有用的。
yao.xywy.com/ppyy/3432.html
yao.xywy.com/ppyy/3434.html


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播
回复 论坛版权

使用道具 举报

沙发
suger 发表于 2020-3-5 16:44:16 | 只看该作者
好难1111111
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-25 13:48, Processed in 0.548600 second(s), 29 queries , Gzip On.

快速回复 返回顶部 返回列表