Implement pow(x, n).
思路:mark weiss allen的数据结构与算法分析第一章就有这个例子。思路就是递归。因为测试案例有n=-2147483648. 转成正的会超过int,所以用longlong保存正值。
class Solution {
public:
double myPow(double x, int n) {
if(n < 0)
x = 1 / x;
long long m = n;
m = m < 0 ? -m : m;
if(m == 0)
return 1;
if(m == 1)
return x;
double a = myPow(x, (int)(m / 2));
if(m % 2 == 0)
return a * a;
else
return a * a * x;
}
};