[50] Pow(x, n)

/**
 * @param {number} x
 * @param {number} n
 * @return {number}
 */
var myPow = function (x, n) {
  if (n < 0) {
    x = 1 / x;
    n = -n;
  }
  let res = 1;
  while (n) {
    if (n & 1) res = res * x; // 当n为奇数时,我们需要收集一下落单的x
    x = x * x;
    n = Math.floor(n / 2)
    // n >>>= 1 ; 需要用>>> 因为数字2147483648 用二进制 2^32 - 1 位表示不了了,所以要
  }
  return res
};

 

posted @ 2023-11-30 14:01  人恒过  阅读(7)  评论(0)    收藏  举报