【LeetCode】50. Pow(x, n)

50. Pow(x, n)

【LeetCode】50. Pow(x, n)_第1张图片

class Solution {
public:
    double myPow(double x, int n) {
        long m = fabs(n);
        bool flag = ((m & 1) == 0);
        if(n == 0){
            return 1;
        }else if(n < 0){
            return flag ? ( 1/myPow(x*x, m/2) ) : (1/(x*myPow(x*x, m/2)));
         }else {
           return flag ? ( myPow(x*x, m/2) ) : (x*myPow(x*x, m/2));
        }
    }
};

总结:

判断奇偶方法我们经常用到的是n%2 ==0,但是还可以利用位运算判断,m&1 == 0,而且比模快

你可能感兴趣的:(leetcode)