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 |