实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
示例 1:
输入: 2.00000, 10
输出: 1024.00000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public double myPow(double x, int n) {
if(n == 0)return 1;
if(x == 0)return 0;
//快速幂
double res = 1.0;
long b = n;//n可能是负数,但是负数比正数多1,转换后会越界
if(b < 0){
b = -b;
x = 1/x;
}
while(b > 0){
if((b & 1)==1) res *= x;
x *= x; //2进制解法
b >>= 1;//右移一位
}
return res;
}
}