수(num)를 입력받아 num번째까지 총 num + 1개의 피보나치 수열을 리턴해야 합니다.
0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
number 타입의 num (num은 0 이상의 정수)
배열을 리턴해야 합니다.
반복문(for)문을 사용해야 합니다.
피보나치 수열은 0번부터 시작합니다.
let output = fibonacci(5);
console.log(output[5]); // --> 5
output = fibonacci(9)[9];
console.log(output); // --> 34
function fibonacci(num) {
if (num === 0) { // 0이 입력되는 경우 [0]출력
return [0];
} else {
let arr = [0, 1];
let xxNum = 0; // 전전 숫자
let xNum = 1; // 전 숫자
for (i = 2; i <= num; i++) { // 1이 입력되는 경우 i보다 작으므로 for문 패스
let tempNum = xNum; // 전 숫자 → 전전 숫자가 되어야 하는데, 전 숫자가 (전전 + 전 숫자)로 바뀌어버리니까, 미리 임시 변수에 저장해놓음
xNum = xxNum + xNum;
xxNum = tempNum; //임시 변수에 저장한 전 숫자를 → 전전 숫자에 할당
arr[i] = xNum; //(전전 숫자 + 전 숫자) 합을 인데스 i번에 할당
}
return arr;
}
}
function fibonacci(num) {
let fib = [];
for(let i = 0; i <= num; i++){
if(i === 0 || i === 1){ // 0 또는 1이 입력되는 경우,
fib.push(i); // 0, 1을 fib 배열에 넣고 그대로 출력
} else{
fib.push(fib[i - 1] + fib[i - 2]); //(전 숫자 + 전전 숫자)를 배열에 하나씩 추가해 줌
}
}
return fib;
}