この解答例はChatGPTによって生成されています,正しいかは自己判断で。
BFE.devでのAI解答例 - JavaScript コーディング問題
86. Fibonacci数を返す
回答
以下は時間複雑性O(n)、空間複雑性O(1)の実装例です。
function fib(n) {
if (n < 1) return 0;
let a = 0;
let b = 1;
for (let i = 2; i <= n; i++) {
const sum = a + b;
a = b;
b = sum;
}
return b;
}
最初の二つの数字が0と1であるため、nが0または1の場合はそれぞれ0と1を返します。
それ以外の場合はforループを使用し、最後の二つの数字を足して新しい数字を生成する処理をn回繰り返します。この方法により、n番目のFibonacci数を取得できます。
時間複雑性はO(n)であるため、nが増加するにつれて処理時間が増加します。一方、空間複雑性はO(1)であるため、追加のメモリスペースを必要としません。