[알고리즘] 14. 피보나치 수열

문정준's avatar
Feb 11, 2025
[알고리즘] 14. 피보나치 수열
F(0) = 0
F(1) = 1
F(n+2) = F(n+1) + F(n)
 

피보나치 수열

  • N 항까지의 피보나치 수열을 구하여라.
 

문제 분석

  • 0번 항 F(0) = 0
  • 1번 항 F(1) = 1
  • 2번 항 F(2) = F(1) + F(0) = 1
  • 3번 항 = F(3) = F(2) + F(1) = 2
  • 4번 항 = F(4) = F(3) + F(2) = 3
  • 계속 반복 >> 조건반복문으로 해결 가능한지?
 

코드 작성 - Sampling, Moduling

package algo; import java.util.Arrays; public class Fibo01 { public static void main(String[] args) { // 1. Sampling : 15항까지의 피보나치 수열을 출력하여라. // 2. Hard Coding - 특징 찾기 1 : F0과 F1은 고정 (상수), F2부터는 계산식 대입 // 2. Hard Coding - 특징 찾기 2 : F(n+2) = F(n) + F(n+1) 꼴 유지 // 2. Hard Coding - 특징 찾기 3 : 계산식의 반복 - 조건반복문 사용 // 3. Moduling // 3-1. 첫번째 항 = 0 int a = 0; System.out.print(a + " "); // 3-2. 두번째 항 = 1 int b = 1; System.out.print(b + " "); // 3-3. 카운터 n : 0 ~ 항의 개수-2 (첫번째 항, 두번째 항은 미리 지정되어 있음) int n = 0; // 3-4. 세번째 ~ 15번째 항 c = a + b int c = 0; // 3-5. 15번째 항이 나올 때까지 (n = 13) while (true) { c = a + b; System.out.print(c + " "); if (n == 13) { System.out.print("end"); break; } a = b; b = c; n++; } } }
Share article

sxias