public class Solution {
public double Power(double base, int exponent) {
return exponent > 0 ? quickPow(base, exponent) : quickPow(1/base, -exponent);
}
public double quickPow(double base, int exp) {
if(exp == 0) {
return 1;
}
if(exp == 1) {
return base;
}
return Power(base, exp/2)*Power(base, exp - exp/2);
}
}因为所有数往下除以2最后都能被分解为1和0,所以对于0次幂,返回1,对于1次幂返回base,剩下的就除以二往下分解。
负数次幂就是把base变为1/base,然后-exp次幂即可



京公网安备 11010502036488号