close
第一個想法,暴力破解
class Solution {
public double myPow(double x, int n) {
int i=1;
int round= Math.abs(n);//絕對值
double result=0;
result=x;
while(i<round){
result=x*result;
i++;
}
if(n>0){
return result;
}else{
return 1/result;
}
}
}
正確簡潔的作法,使用遞迴:
class Solution {
public double myPow(double x, int n) {
if(n == 0)
return 1;
if(n<0){
n = -n;
x = 1/x;
}
return (n%2 == 0) ? myPow(x*x, n/2) : x*myPow(x*x, n/2);
}
}
全站熱搜
留言列表