算法练习——Pow(x, n)

2021年2月1日算法练习为50. Pow(x, n),最先想到就是不断平方,直至幂数为1,就让这个结果返回即可。就是又一个用例不过,就是n刚好溢出的情况,因此需要一个long变量来存n,否则结果都是1,期望结果却是0。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public double myPow(double x, int n) {
long N = n;
return N >= 0 ? pow(x, N) : 1.0 / pow(x, -N);
}

public double pow(double x, long n) {
double t = x, ret = 1.0;
while (n > 0) {
if (n % 2 == 1) {
ret *= t;
}
t *= t;
n /= 2;
}
return ret;
}
}