题目
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。
示例
输入:x = 2.00000, n = 10
输出:1024.00000
输入:x = 2.10000, n = 3
输出:9.26100
输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powx-n
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:快速幂算法
这里的n要变成long型是因为:
int型范围为:-2147483648 ~ 2147483647。如果遇到-2147483648,直接变成-n的时候,int型会溢出。
Java实现
class Solution {
public double myPow(double x, int n) {
long N = n;
return N > 0 ? quickMul(x, n) : 1.0 / quickMul(x, -N);
}
public double quickMul(double x, long n) {
if (n == 0) return 1.0;
double y = quickMul(x, n / 2);
return n % 2 == 0 ? y * y : y * y * x;
}
}