题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
public class Solution {
public double Power(double base, int exponent) {
//幂为0的时候(2*0,-1*0)==1,此处*为幂运算的意思
if(exponent==0 && base!=0) return 1.0;
//底数为0的时候(0*0,0*2,0*-2)==0,此处*为幂运算的意思
if(base==0) return 0.0;
//根据幂的正负分类
double result=1.0;
for(int i=0;i<Math.abs(exponent);i++){
result*=base;
}
//幂大于0的时候直接返回结果;小于0的时候,返回结果的倒数;
return exponent>0?result:1/result;
}
}
此处判断等于0的情况:
private boolean equal(double num1,double num2){
if((num1-num2)<0.0000001
&& (num1-num2)>-0.0000001)
return true;
return false;
}