JAVA 예제 : 피보나치 수열

:-)·2022년 3월 22일
0
 피보나치 수열이란? 
1,1,2,3,5,8,13,21,34,55,... 과 같이
1,1로 시작해서 앞의 두항의 합이 뒤의 항으로 이루어진 수열입니다.

문제

파라미터로 총 항의 수(n)를 받고, 입력한 총 항을 차례대로 출력하는 메소드를 만들어 보세요!
예) fibonacci(10)
출력결과 -> 1 1 2 3 5 8 13 21 34 55 (한 항씩 줄바꿈으로 출력)

피보나치 알고리즘의 핵심은 An = (An - 1) + (An - 2)이다.

✍ 소스코드

이전 항과 전 전 항을 변수에 담아 더하는 방법
public class Fibonacci {

	public static void main(String[] args) {
		fibonacci(10);
	}

	public static void fibonacci(int n) {
		int current = 1; 	// 현재 숫자
		int previous = 0;	// 이전 숫자
		int a = 0;			// 이전 숫자를 보관하는 변수
		
		
		for (int i = 1; i <= n; i++) {
			System.out.println(current);

			a = previous;
			previous = current;
			current = a + previous;
			
		}
	}
}

👉 출력 결과

1
1
2
3
5
8
13
21
34
55



✍ 그 외 다른 코드

배열 사용
public class Fibonacci {
	
	public static void main(String[] args) {
        f1(10);
    }

    public static void f1(int x){
        int[] fibonacci = new int[x];
        fibonacci[0] = 1;
        fibonacci[1] = 1;
        System.out.print(fibonacci[0] + " " + fibonacci[1] + " ");
        
        for(int i = 2; i < x; i++){
            fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
            System.out.print(fibonacci[i] + " ");
        }

    }
	
}

👉출력 결과

1 1 2 3 5 8 13 21 34 55

0개의 댓글