문제 내용은 입력으로 특정 숫자를 받아서 N번째 피보나치 수를 출력해주면 끝나는 문제인데, 피보나치 수는 Fn = Fn-1 + Fn-2 (n ≥ 2) 이 공식으로 이루어져 있어서 0은 0 1은 1 2는 0과 1을 더한 1 3은 1과 1을 더한 2.. 이런 식으로 진행되게 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
int[] fibonacci = new int[count + 1];
fibonacci[0] = 0;
if (count > 0) {
fibonacci[1] = 1;
}
for (int i = 2; i <= count; i++) {
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
}
System.out.println(fibonacci[count]);
}
}
문제를 풀어보자면 배열에 피보나치 수를 계산하면서 입력값까지 넣어준 뒤 마지막 값을 출력해주면 끝인데, 배열에서 0과 1은 계산하기 전 미리 수를 할당해 줘야 하고, (피보나치 수는 2이상부터 동작하므로) 0이 나올 경우에는 1을 할당할 필요가 없기 때문에 if 처리해주고 피보나치수를 N까지 넣어주면서 배열의 마지막 값을 출력해주면 끝이다.
Leave a Reply