자바스크립트 알고리즘 문제 (1주차)- 2. 피보나치 수열 구하기

하... 두번째 문제풀이 글이 날아갔다.
왜 저에게 이런 시련을...
일단 시작합니다...

피보나치 수열 구하기이다...
문제 보시죠...(출처:코딩도장)

피보나치 수열이란, 첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때, 이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다.
예) 0, 1, 1, 2, 3, 5, 8, 13
인풋을 정수 n으로 받았을때, n 이하까지의 피보나치 수열을 출력하는 프로그램을 작성하세요.

휴... 글이 날아가 심적으로 매우 지쳐있는 상태이다. 일단 풀이로 가보자.
내가 작성한 풀이다.

  <script>
    var num = Number(prompt("숫자를 입력하세요."));
    var fibonacci = [0, 1];

    var x = fibonacci[0];
    var y = fibonacci[1];
      
    for(i=0; i<num; i++) {
      i = x + y; 
      x = y;
      y = i;
      fibonacci.push(i);
    }
    
    document.write(fibonacci);
  </script>

휴.. 아직도 화가 난다... 왜 날아갔을까... 부디 이번 글은 살아남길 바란다.
풀이설명하겠다.

  1. num이라는 변수를 선언하여 prompt를 이용해 입력받았다.
    입력받은 수는 Number로 감싸주어 변수가 숫자로 할당될 것임을 암시해보았다.
    필요없는 과정이라면 나중에 배우겠지요...
  2. fibonacci라는 배열을 선언하여 첫번째 값은 0, 두번째 값은 1로 정해놓았다.
    이것은 문제에 설명되어 있는 조건이다.
  3. 변수 x,y를 선언하여 각각 fibonacci 배열의 첫번째, 두번째 값이 들어가게 하였다.
  4. for문을 사용하여 입력받은 숫자의 범위 안에서 반복문이 돌아가게 하였다.
    1) i는 위에서 선언한 x와 y의 합이다.
    2) x를 fibonacci 배열의 두번째 값으로 재설정한다. 즉, 1)에서 반복하게 될 x의 값을 배열의 다음 값으로 지정하는 것이다.
    3) y를 1)에서 더한 i의 값으로 재설정한다.
    4) 이렇게 입력받은 수의 범위 안에서 반복하게 될 i를 fibonacci 배열에 추가한다.
  5. 화면에 출력!

휴... 이번엔 제발 올라가기를...

좋은 웹페이지 즐겨찾기