给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
public class Solution { public double Power(double base, int exponent) { double result = 1, curr = base; int n; if (exponent > 0) { n = exponent; } else if (exponent < 0) { if (base == 0) throw new RuntimeException("分母不能为0"); n = -exponent; } else {// exponent==0 return 1;// 0的0次方 } while (n != 0) { if ((n & 1) == 1) result *= curr; curr *= curr;// 翻倍,n每移位一次就相当于平方一次 n >>= 1;// 右移一位 } return exponent >= 0 ? result : (1 / result); } }