描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。
示例1 输入:2.00000,3 返回值:8.00000 示例2 输入:2.10000,3 返回值:9.26100 示例3 输入:2.00000,-2 返回值:0.25000
分析
写一个pow函数,注意指数的正负,是否为0这些条件。
代码
public class Solution {
private double MyPower(double base,int exponent){
if(exponent == 0) return 1;
if(exponent == 1) return base;
double tem = MyPower(base,exponent/2);
tem = tem*tem;
if(exponent%2==1){
tem = tem * base;
}
return tem;
}
public double Power(double base, int exponent) {
if(Math.abs(base) <= 0.00000001){
return 0;
}
if(exponent == 0){
return 1;
}
Boolean isNegative = (exponent<0);
double res = MyPower(base,exponent);
if(isNegative){
res = 1/res;
}
return res;
}
}
|