본문 바로가기
알고리즘/문제풀이

백준 10826 피보나치 수 4

by 새싹감자 2022. 8. 2.

원래 생각했던 대로 재귀를 쓰면 시간초과가 뜨고, 그냥 int로 구현하면 범위때문에 틀렸다고 출력되는 문제이다.
n에 0이 들어갈 수도 있다는 것을 확인해야한다.
BigInteger은 문자열이기에 사칙연산이 안됩니다. 그렇기에 BigIntger 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용해야 한다.

import java.math.BigInteger;
import java.util.Scanner;

public class Main_10826_이서정{
        public static void main(String[] args) {
        // TODO Auto-generated method stub
    Scanner input= new Scanner(System.in);
        int n=input.nextInt();
        BigInteger fib[]=new BigInteger[n+1];
        fib[0]=BigInteger.ZERO;
        if(n>0) {
            fib[1]=BigInteger.ONE;
        }

        for(int i=2; i<fib.length; i++) {
            fib[i]=fib[i-1].add(fib[i-2]);
        }
        System.out.println(fib[n]);
    }

}

'알고리즘 > 문제풀이' 카테고리의 다른 글

sw expert 1228  (0) 2022.08.08
백준 11650 좌표 정렬하기  (0) 2022.08.03
백준 1929 소수 구하기  (0) 2022.08.02
백준 1244  (0) 2022.08.02
백준 17478  (0) 2022.08.02

댓글