백준

백준[2748]번 : 피보나치 수 2 ( JAVA )

하루우울루 2023. 7. 29. 11:08

https://www.acmicpc.net/problem/2748

 

2748번: 피보나치 수 2

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net


 

Code

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	static long[] arr; 
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine());
		arr = new long[t+1];
		
		for(int i=0;i<t+1;i++) { // -1로 초기화
			arr[i] = -1;
		}
		
		arr[0] = 0;
		arr[1] = 1;
		
		long ans = fibo(t);
		
		bw.write(ans + " ");
		
		br.close();
		bw.close();
	}
	static long fibo(int t) {
		if(arr[t] == -1) {
			arr[t] = fibo(t-1) + fibo(t-2);
		}
			
		return arr[t];
	}

}

int 보다 범위가 큰 long 타입을 사용해야 한다