この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
109. `Math.pow()`を実装する

回答

掛け算を繰り返す方法以外に、指数の二分割を行う方法があります。以下はその実装例です。

function pow(base, exponent) {
  if (exponent === 0) {
    return 1;
  } else if (exponent === 1) {
    return base;
  } else if (exponent < 0) {
    return pow(1 / base, -exponent);
  } else if (exponent % 2 === 0) {
    return pow(base * base, exponent / 2);
  } else {
    return base * pow(base * base, (exponent - 1) / 2);
  }
}

この実装では、指数を2で割りながら再帰的に計算していき、奇数・偶数で処理を分岐させています。指数が0の場合は1を、1の場合はbaseを、指数が負の場合は1/baseを計算し、最終的な値を返します。