피보나치수열 in JavaScript

iadorora·2024년 10월 16일

daily record

목록 보기
1/27
post-thumbnail

피보나치 수열이란 ❔

수학 시간에 한번 쯤은 들어봤을 것이다.

첫번째 항과 두번째 항을 더하면 세번째 항이 되고,
두번째 항과 세번째 항을 더하면 네번째 항이 되는 수열이다.

즉, n번째 항 더하기 n+1번째 항n+2번째 항이라는 것이다.

피보나치 수열 in JavaScript

반복문을 활용하여 피보나치 수열의 첫 50개 항을
차례대로 출력하는 프로그램을 만들어보자!

for문 활용

let current = 1;
let previous = 0;

for (let i = 1; i <= 50; i++) {
  console.log(current);
  let temp = previous; 
  previous = current;
  current = current + temp; 
}

while문 활용

let previous = 0;
let current = 1;
let i = 1;

while (i <= 50) {
  console.log(current);
  let temp = previous;  
  previous = current;
  current = current + temp;  
  i++;
}

생각해 봐야할 점

피보나치 수열의 항은 앞선 두 항의 합으로 계산하니까
앞선 두 항을 변수에 보관해둬야겠다!

현재항과 직전항을 따로 저장해두는 변수를 만들어야지.
previous = current;
current = previous + current;

이렇게 작성하고 보니, current 값과 previous 값이 같아져서
저장해 둔 previous값이 없어지잖아?

그럼 직전항을 임시로 저장해두는 임시 저장소 temp 를 변수로 선언해야겠다!⭐️

해석

현재항과 직전항을 저장해두기 위해 변수 currentprevious를 선언합니다.

첫 50개의 항을 차례로 출력하기 위한 반복문을 작성합니다.

직전항의 값을 임시 저장소 temp 에 저장해두고,
current 값을 previous 변수에 할당합니다.

임시 보관소에 저장해둔 직전항의 값 + current 값 = 현재항 current 가 출력됩니다.

n번째 항까지 출력하는 함수

n을 파라미터로 받은 뒤, n번째 항까지의 피보나치 수열을 출력하는 함수이다.

let previous = 0
let current = 1

function fibonacciSequence(n) {
  for (let i = 1; i <= n; i++) {
    console.log(current);
    temp = previous;
    previous = current;
    current = temp + current;
  }
}

fibonacciSequence(50) //50번째 항까지의 피보나치 수열 출력
profile
Archive

0개의 댓글