【LeetCode-面試演算法經典-Java實現】【050-Implement pow(x, n)(求x的n次方)】
阿新 • • 發佈:2019-02-09
原題
Implement pow(x, n).
題目大意
求x的n次方。
解題思路
遞迴求解。
程式碼實現
演算法實現類
public class Solution {
public double myPow(double x, int n) {
if (x == 0 && n == 0) {
throw new IllegalArgumentException();
}
// 指數正負標記
boolean isNegative = false ;
// 求n的絕對值
if (n < 0) {
n = -n;
isNegative = true;
}
double result = pow(x, n);
if (isNegative) {
return 1.0 / result;
} else {
return result;
}
}
public double pow(double x, int n) {
if (n == 0) {
return 1;
} else {
double result = pow(x, n / 2);
// n是奇數
if (n % 2 != 0) {
return x * result * result;
} else {
return result * result;
}
}
}
}
評測結果
點選圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中檢視完整圖片。