1.题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
2.code(java1.7版本)
O(n)的复杂度
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0){
return 1;
}
boolean flag=false;
if(exponent<0){
exponent=-exponent;
flag=true;
}
double ans=1;
for(int i=0;i<exponent;i++){
ans*=base;
}
if(flag){
ans=1/ans;
}
return ans;
}
}
O(logn)复杂度
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0)return 1;
int p=Math.abs(exponent);
double ans=1;
while(p!=0){
if((p&1)!=0)ans*=base;
base*=base;
p>>=1;
}
return exponent>0?ans:(1/ans);
}
}