例如计算x的77次方:
double myPow(double x, int n){
double res = 1.0;
for(int i = n;i!=0;i/=2) //贡献初始值为x
{
if(i % 2 == 1) //如果N的二进制最低位为1,则需要计入贡献
{
res *= x;
}
x *=x ; //将贡献不断平方
}
return n < 0?1/res:res;
}
仅供自己会议参考。