实现 pow(x, n) ,即计算 x 的 n 次幂函数。
示例 1:
输入: 2.00000, 10 输出: 1024.00000 示例 2:
输入: 2.10000, 3 输出: 9.26100 示例 3:
输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明:
-100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。
代码:
class Solution { public: double helper(double x, int n) { if(n==0) return 1.0; double y=helper(x,n/2); return n%2==0? y*y:y*y*x; } double myPow(double x, int n) { long long N=static_cast<long long>(n); //很重要,防止n=INT_MIN的时候,-n溢出 if(N==0) return 1; return N>0?helper(x,N):1./helper(x,-N); } };