英格兰世界杯预选赛_世界杯卡塔尔 - sctzjx.com

pow(x,y)函数的用法及实现算法

  • Home
  • 世界杯有中国队吗
  • pow(x,y)函数的用法及实现算法
  • 2025-06-11 18:27:46
  • admin

pow函数是求次方的函数, 函数原型是double pow(double a,double b); 使用时应包含math.h头文件。 1,C/C++中的数学函数编辑 原型:在TC2.0中原型为extern float pow(float x, float y); ,而在VC6.0中原型为double pow( double x, double y ); 头文件:math.h/cmath(C++中) 功能:计算x的y次幂。 返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。 返回类型:double型,int,float会给与警告! 2,pow函数的重载编辑 C++提供以下几种pow函数的重载形式: double pow(double X,int Y); float pow(float X,float Y); float pow(float X,int Y); long double pow(long double X,long double Y); long double pow(long double X,int Y); 使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。 其中较容易发生重载的是使用形如: int X,Y; int num=pow(X,Y); 这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。 可以使用强制类型转换解决这个问题:num=pow((float)X,Y);

函数pow(x,y)实现运算x^y,即x的y次方,这里x和y都为整数。

算法的基本思想是,减少乘法次数,重复利用结算结果,例如: x^4,如果逐个相乘的话,需要四次乘法。如果我们这样分解(x^2)*(x^2)就只需要2两次乘法,因为x^2的结果我们可以重复利用。所以我们最好做对称的分解指数y,然后求x^(y/2)的平方。

具体算法如下: 1 如果y为偶数,直接计算mypow(x, y/2)*mypow(x, y/2); 2 如果y为奇数,则y-1为偶数,回到了第一种情况。

int mypow(int x, int y)

{

if (y == 1) return x;

int result = 0;

int tmp = mypow(x, y/2);

if(y&1 != 0) //奇数

{

result = x * tmp * tmp;

}

else

{

result = tmp * tmp;

}

return result;

}

Previus Post
linux 耗电快 Linux系统耗电快?原因与解决方案!

Copyright © 2088 英格兰世界杯预选赛_世界杯卡塔尔 - sctzjx.com All Rights Reserved.
友情链接