Pow(x,n)

题目需求:实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,x的n次方 )。

  • 示例 1:
    输入:x = 2.00000, n = 10
    输出:1024.00000
  • 示例 2:
    输入:x = 2.10000, n = 3
    输出:9.26100
  • 示例 3:
    输入:x = 2.00000, n = -2
    输出:0.25000
    解释:2-2 = 1/22 = 1/4 = 0.25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}
}

这道题,可以使用快速幂去解决问题,不用使用到穷举法,去浪费每一次的乘法运算的时间,其实快速幂运算,就是找到其中的规律,比如x的64次方:可以x^2=>x^4=>x^16=>x^32=>这样下去
但是有个快速解法,直接使用return Math.pow(x,n),调用相应的数学运算。
两个方法的时间0ms,内存占用只有0.01m的区别