この解答例は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を計算し、最終的な値を返します。