剑指 Offer 16. 数值的整数次方

思路
快速幂法:对x求9次幂,那么x ^ 9 = x ^ (1001)=x ^ ( 1
∗
*
∗ 2 ^ 3+ 1
∗
*
∗ 2 ^ 0)
因此,只要把幂拆分成二进制来计算即可
代码
public double myPow(double x, int n) {
if(x==0)return 0;
long b=n;
double res=1;
if(b<0){
b=-b;
x=1/x;
}
while(b>0){
if((b&1)==1)res*=x;
x*=x;
b>>=1;
}
return res;
}
这篇博客介绍了如何使用快速幂法求解一个数的整数次方,通过将指数转化为二进制进行计算,大大提高了算法效率。代码中展示了Java实现的快速幂算法,特别处理了负指数和x等于0的情况。
507

被折叠的 条评论
为什么被折叠?



