题目
实现pow(x,n),即计算x的n次幂函数
注意:n可以为负数
说明:
- -100.0 < x < 100.0
- n是32位有符号整数,其数值范围是$[-2^{31}, 2^{31} - 1]$
//这个思路还是比较好想的,主要是要考虑数值溢出问题
class Solution {
public:
double myPow(double x, int n) {
double res;
long long N = n;
res = N > 0 ? helper(x,N) : 1.0 / helper(x, -N);
return res;
}
double helper(double x, long long n) {
if(n == 0)
return 1.0;
double y = helper(x, n/2);
return (n % 2 == 0) ? y * y : y * y * x;
}
};