其实并没有想象中那么简单
class Solution {
public double myPow(double x, int n) {
if(n==0){
return 1;
}
if(n==1){
return x;
}
double res=1;
int r=Math.abs(n);
while(r!=0){
res*=x;
r--;
}
return n>0?res:1/res;
}
}
超时了
看了答案才知道快速幂(菜鸡本质暴露)
快学快学!
啥是快速幂?
原理在这里,一个大佬写了
class Solution {
public double myPow(double x, int n) {
if(x == 0) return 0;
long b = n;
double res = 1.0;
if(b < 0) {
x = 1 / x;
b = -b;
}
while(b > 0) {
if((b & 1) == 1) res *= x;
x *= x;
b >>= 1;
}
return res;
}
}