例如計算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;
}
僅供自己會議參考。