面试题 16:数值的整数次方

/**
 * @Name:
 * @Description:
 * @Author: Allen
 */
public class PowerCalculate16 {
    public static void main(String[] args) {
        Solution16 solution16= new Solution16();
        System.out.println(solution16.Power(3.4, -2));
    }
}

class Solution16 {
    public double Power(double base, int exponent) {
        if(base==0 && exponent<0){//底数为0,抛出异常
            throw new RuntimeException("0 can not be denominator");
        }
        int absNum=exponent;
        if(exponent<0)//考虑到指数为负数的情况
            absNum=-exponent;
        double result=calculatePower(base,absNum);
        if(exponent<0) result=1/result;
        return result;
  }
    
   private double calculatePower(double base, int exponent){
       double result=1;
       for(int i=1; i<=exponent; i++){
           result*=base;
       }
       return result;
   }
}
原文地址:https://www.cnblogs.com/Allen-win/p/8098600.html