题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x的n次方)。
实例一:
输入: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
快速幂:
若n是偶数,x的n次方=x平方的n/2次方
若n是奇数,n-1为偶数,x的n次方 = x 乘以 x的n-1次方
此时记录下这个多的x即可
代码如下:
class Solution {
public double myPow(double x, int n) {
double res = 1.0;
for(int i = n; i != 0; i /= 2){
if(i % 2 != 0){
res *= x;
}
x *= x;
}
return n < 0 ? 1 / res : res;
}
}