##題目描述 給定一個double型別的浮點數base和int型別的整數exponent,求base的exponent次方,
保證base和exponent不同時為0
思路
普通迭代,時間復雜度O(n),空間復雜度O(1),
折疊迭代,時間復雜度O(lgn),空間復雜度O(1),
Java函式
public class Solution {
public double Power(double base, int exponent) {
return Math.pow(base, exponent);
}
}
普通迭代
public class Solution {
public double Power(double base, int exponent) {
if(base == 0) return 0;
double ans = 1.0d;
int e = exponent < 0 ? -exponent : exponent;
while(e-- > 0) {
ans *= base;
}
return exponent < 0 ? 1 / ans : ans;
}
}
折疊迭代
public class Solution {
public double Power(double base, int exponent) {
if(base == 0) return 0;
double ans = 1.0d;
int e = exponent < 0 ? -exponent : exponent;
while(e > 0) {
if(e%2 == 1) {
ans *= base;
}
base *= base;
e >>= 1;
}
return exponent < 0 ? 1 / ans : ans;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/86924.html
標籤:其他
上一篇:二進制中1的個數
