백준
백준[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 타입을 사용해야 한다