본문 바로가기
코플릿 기록/JavaScript

배열 25번 (피보나치수열) ★★★

by 뭉지야 2023. 1. 7.
728x90

#문제

수(num)를입력받아 num번째까지 총 num+1개의 피보나치 수열을 리턴해야한다.

0번째 피보나치 수는 0이고, 1번째피보나치수는 1이다.

그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의한다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ....

for문을 사용해야한다.


#예시

let output = fibonacci(5);
console.log(output[5]); // --> 5

output = fibonacci(9)[9];
console.log(output); // --> 34

 #풀이

i=0 -> [0]

i=1 -> [0,1]

i=2 -> [0,1,1]

i=3 -> [0,1,1,2]

 

1.피보나치 수열을 넣어줄 배열을 선언한다.

let fib = [];

2. 기본숫자 두개는 필요하니까 넣어주어야 한다.

0부터시작하는데 0이거나 1이면 fib에 바로 삽입 / push

if(i === 0 || i === 1)

  fib.push(i)   // fib= [0,1]

3.두개 더해서 다음 숫자 반복해서 넣어준다 (push)

i=2; fib.push(fib[0]+fib[1]) -> [0,1,1]

i=3; fib.push(fib[1]+fib[2]) -> [0,1,1,2] -> fib[i-2]+fib[i-1]

i=4; fib.push(fib[2]+fib[3]) -> [0,1,1,2,3] -> fib[i-2]+fib[i-1]

4. 반복문 끝나면 배열 리턴

return fib;


#정답

function fibonacci(num) {
let fib = [];
for(let i=0; i<= num; i++) {
if(i === 0 || i === 1) {
fib.push(i)
} 
else {
fib.push(fib[i-2] + fib[i-1])
}
}
return fib;
}

 

728x90

'코플릿 기록 > JavaScript' 카테고리의 다른 글

고차함수 12번  (0) 2023.01.12
고차함수 10번 ★화살표함수예시★  (0) 2023.01.12
배열 24번 ★★★  (0) 2023.01.07
배열 14번~20번 ★★★  (0) 2023.01.07
배열 7번 ★★  (2) 2023.01.07