Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 피보나치 수열 출력하기: 알고리즘과 코드 예제 완벽 정리

이 글에서는 Java를 활용해 N번째 항까지의 피보나치 수열(Fibonacci Series)을 구하고 화면에 출력하는 방법을 알아봅니다. 피보나치 수열은 앞선 두 개의 수를 더해 다음 수를 만들어가는 숫자 배열로, 수학과 프로그래밍에서 가장 널리 알려진 기초 알고리즘 중 하나입니다.

피보나치 수열이란?

피보나치 수열은 이전 두 항의 합으로 다음 항을 생성하는 수열입니다. 수열은 두 개의 초기값 F0과 F1에서 시작하며, 초기값은 일반적으로 0과 1 또는 1과 1로 설정할 수 있습니다.

Fn = Fn-1 + Fn-2

따라서 피보나치 수열은 다음과 같은 형태를 가집니다.

F8 = 0 1 1 2 3 5 8 13

또는 초기값을 1, 1로 시작하면 다음과 같습니다.

F8 = 1 1 2 3 5 8 13 21

입력 조건

예시로 사용할 입력값은 다음과 같습니다.

입력값 : 15

출력 결과

위 입력에 대한 기대 출력 결과는 다음과 같습니다.

15항까지의 피보나치 수열:

알고리즘

프로그램의 동작 흐름은 아래 단계와 같습니다.

Step 1 - 시작
Step 2 - 필요한 변수 선언
Step 3 - 사용자로부터 값을 입력받거나 값을 직접 정의
Step 4 - for 반복문으로 1부터 N까지 순회하며,
         연속된 두 수의 합을 현재 피보나치 수로 계산
Step 5 - 결과 출력
Step 6 - 종료

예제 1: 사용자 입력을 받아 출력하기

첫 번째 예제는 Scanner 클래스를 사용해 사용자로부터 직접 숫자를 입력받는 방식입니다. 콘솔 환경에서 프롬프트에 숫자를 입력하면 해당 항수만큼의 피보나치 수열이 출력됩니다.

import java.util.Scanner;
public class Main {
   public static void main(String[] args) {
      int my_input , term_1, term_2, term_3;
      term_1 = 0;
      term_2 = 1;
      System.out.println("필요한 패키지가 임포트되었습니다");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("입력 객체가 정의되었습니다");
      System.out.print("숫자를 입력하세요 : ");
      my_input = my_scanner.nextInt();
      System.out.println(my_input + "항까지의 피보나치 수열:");
      for (int i = 1; i <= my_input; ++i) {
         System.out.print(term_1 + " ");
         term_3 = term_1 + term_2;
         term_1 = term_2;
         term_2 = term_3;
      }
   }
}

실행 결과

필요한 패키지가 임포트되었습니다
입력 객체가 정의되었습니다
숫자를 입력하세요 : 15
15항까지의 피보나치 수열:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

예제 2: 값이 미리 정의된 경우

두 번째 예제는 입력값이 코드 내부에 미리 정의되어 있으며, 그 값을 읽어와 콘솔에 바로 출력하는 방식입니다. 테스트나 학습 목적으로 간편하게 활용할 수 있습니다.

public class Main {
   public static void main(String[] args) {
      int my_input , term_1, term_2, term_3;
      my_input = 15;
      term_1 = 0;
      term_2 = 1;
      System.out.println("정의된 숫자 : " + my_input);
      System.out.println(my_input + "항까지의 피보나치 수열:");
      for (int i = 1; i <= my_input; ++i) {
         System.out.print(term_1 + " ");
         term_3 = term_1 + term_2;
         term_1 = term_2;
         term_2 = term_3;
      }
   }
}

실행 결과

정의된 숫자 : 15
15항까지의 피보나치 수열:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

마무리

피보나치 수열 구현은 반복문과 변수 갱신 로직을 익히기에 가장 좋은 입문 예제 중 하나입니다. 위 예제에서는 세 개의 변수(term_1, term_2, term_3)를 활용해 이전 두 항의 합을 차례대로 계산했습니다. 이 로직을 이해하면 재귀 호출, 동적 프로그래밍(DP), 메모이제이션 등 더 고급 기법으로 확장하는 것도 어렵지 않습니다. 직접 코드를 실행하며 다양한 입력값으로 실험해 보시길 권장합니다.