题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路: 核心是一个循环,进行不断累乘。
注意特殊输入: exponent为0的情况 exponent为负数的情况
另外,在计算机中,判断两个double型是否相等,只能判断它们的绝对值只差是否在一个很小的范围内 这是加分点
public class Solution { public double Power(double base, int exponent) { double result = 1.0; int exponent_abs = Math.abs(exponent); if(equal(base, 0.0) && exponent < 0) { // 0的负数幂 return 0.0; } if(equal(exponent, 0.0)) { return 1; }else { for(int i = 0; i < exponent_abs; i++) { result *= base; } } return exponent > 0 ? result : 1 / result; } // 在计算机中,判断两个double型是否相等 // 只能判断它们的绝对值只差是否在一个很小的范围内 public boolean equal(double n1, double n2) { return (n1 - n2 > -0.0000001) && (n1 - n2 < 0.0000001); } }