안녕하세요
[node.js] 10870 피보나치 수 (자바스크립트) 재귀와 반복문 차이 본문
10870 피보나치 수 5
첫째 줄에 n이 주어집니다. n은 20보다 작거나 같은 자연수 또는 0입니다.
10
첫째 줄에 N번째 피보나치 수를 출력합니다.
55
제출한 답
const n = require("fs").readFileSync("devstdin").toString();
function fibo(n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibo(n - 1) + fibo(n - 2);
}
}
console.log(fibo(n));
코드설명
재귀함수는 실행된 함수가 자기 자신의 함수를 호출하고 호출된 함수다 또 다시 자기 자신의 함수를 호출합니다.
이같은 구조로 인해 종료조건이 없을 경우에는 계속하여 반복하게 됩니다.
반복문으로도 작성이 가능합니다. 반복문은 반복 구간을 설정하기 때문에 자동으로 종료되며, 속도가 더 빠릅니다. 하지만, 코드의 길이가 길어집니다.
function fibo(n) {
if (n == 0 || n == 1) {
return n;
} else {
함수에 입력하는 값 n이 0 과 1일 경우에는 n을 그대로 반환합니다.
} else {
return fibo(n - 1) + fibo(n - 2);
}
예시)
fibo(2)의 경우에는 fibo(0)의 결과값인 0과, fino(1)의 결과값인 1을 더한 1을 반환합니다.
fibo(3)의 경우에는 fibo(1)의 결과값인 1과 fibo(2)의 결과값인 1을 더한 2를 반환합니다.
fibo(4) ... fibo(2) : 1 + fibo(3) : 2 = 3
...
fibo(n) ... fibo(n-2) + fibo(n-2)
'백준 자바스크립트' 카테고리의 다른 글
[node.js] 3003 킹퀸룩비숍나이트폰 (자바스크립트) (0) | 2022.08.21 |
---|---|
[node.js] 17478 재귀함수가 뭔가요? (자바스크립트) 재귀 단계 (0) | 2022.06.28 |
[node.js] 10872 팩토리얼 (자바스크립트) 재귀 단계 (0) | 2022.06.24 |
[node.js] 4948 베르트랑 공준 (자바스크립트) 기본수학단계2 (0) | 2022.06.15 |
[node.js] 1929 소수구하기 (자바스크립트) 기본수학단계2 (0) | 2022.06.14 |