피보나치 문제입니다.
일단 어느 일정 n이상 가면 long의 범위를 넘어가기 때문에
BigInteger를 사용해 풀었습니다. 그리고 재귀 말고 바텀-업 (맞나?) 방식으로
풀었습니다
public class Q10826 { static BigInteger[] arr; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); arr = new BigInteger[n+1]; arr[0]=BigInteger.ZERO; if(n>0) { arr[1]=BigInteger.ONE; } if(n==0) { System.out.print("0"); }else if(n==1) { System.out.print("1"); }else { for(int i=2; i<=n; i++) { arr[i] = arr[i-1].add(arr[i-2]); } System.out.print(arr[n]); } } }
'짱구 굴리기 (Q) - ' 카테고리의 다른 글
[백준 7568] 덩치 (0) | 2019.04.04 |
---|---|
[백준 1003] 피보나치 함수 (0) | 2019.04.03 |
[백준 2747] 피보나치 수 (0) | 2019.04.03 |
[백준 1100] 하얀 칸 (0) | 2019.04.03 |
[백준 1193] 분수찾기 (0) | 2019.04.02 |