给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
运行时间:39ms
占用内存:503k
在leetcode上做过这个题目,还有一点印象。就是要不断地降次,需要考虑指数是奇数还是偶数的情况。
用递归的方式解决。
最终需要计算的就是a*a的形式,所以每降低一次就是大致就节省了一半的计算次数 这样还是能很大程度上简化问题
需要注意指数是负数的情况。而循环的出口有两种指数为0或1
public class Solution {
public double Power(double base, int exponent) {
if(exponent<0) return Power(1/base,-1*exponent);
if(exponent==0) return 1;
if(exponent==1) return base;
if(exponent%2==1) return base*Power(base,exponent/2)*Power(base,exponent/2);
else return Power(base,exponent/2)*Power(base,exponent/2);
}
}