数值的整数次方
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
思路
不能用==比较两个浮点数是否相等,因为有误差。考虑输入值的多种情况。
注意有几个情况要单独列出来考虑:
1.base为0
2.指数为0
3.指数为正数或者为负数的情况
public class Solution {
public double Power(double base, int exponent) {
if(equal(base,0)) return 0;
if(exponent==0) return 1;
if(exponent > 0){
return multiply(base,exponent);
}else{
return multiply(1/base,-exponent);
}
}
public double multiply(double base,int exponent){
double res = 1;
for(int i = 0;i < exponent;i++){
res = res*base;
}
return res;
}
public boolean equal(double a,double b){
if(a-b < 0.000001 && a-b > -0.000001){
return true;
}
return false;
}
}