Java 피보나치 수열

피보나치 수열은 프로그래밍을 하는 사람이라면 반복문을 배우고 바로 작성해보는 코드라고 생각한다.

피보나치 수열에 대한 수학적인 자세한 설명은 피보나치 수열 본 링크를 참조하면 된다.

피보나치 수열에 대해 간단히 설명을 하면 앞의 두 수를 더한 값이 다음의 수를 정의한다.

  • 첫번째 수가 1이고 두번째 수가 1일 때 세번째 수는 1 + 1인 2가 된다.
  • 두번째 수가 1이고 세번째 수가 2일 때 네번째 수는 1 + 2인 3이 된다.
  • 처음 수가 증가하는 폭은 굉장히 작지만, 20번 이상 진행되면 수가 급격히 증가한다.
  • 증권가의 막대그래프 조사 등에 사용된다고 한다.

피보나치 수열 코드

class fibonaci{
  public static void main(String[] args){
    // TODO 피보나치
    long a=1;		//숫자가 굉장히 커지기 때문에 long으로 선언한다.
    long b=1;
    long c;

    long arrNum[] = new long[20];		//20번째까지의 피보나치 수열을 담는다.

    int w=0;	//루프변수 초기화

    arrNum[0] = a;	//첫번째 수와
    arrNum[1] = b;	//두번째 수 세팅

    // 1	1	2	3	5	8
    // a	b	c
    //		a	b	c(a+b)	.....
    //
    //c는 a와 b를 더한값이 되고, 현재 b값은 a변수에 현재 c값은 b변수에 전달하며 한칸씩 나아간다.
    //20번을 돌아가며 a, b, c의 자리를 변경해준다.
    while(w < 18) {
      c = a+b;
      a = b;
      b = c;
      arrNum[w+2] = c;
      w++;
    }

    for (int i = 0; i < arrNum.length; i++) {
      System.out.println(arrNum[i]);
    }
  }
}
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946

Comments