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