본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

백준알고리즘


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


2747번(피보나치 수)와 문제는 똑같은데 차이점은 입력받는 범위가 최대였을 때 int 형의 범위를 넘어가 버려서 문제가 된다. long형으로 변경하면 해결

import java.util.Scanner;

public class Main2 {
    static long[] array;
    public static void main(String[] args) {
        Scanner scan = new Scanner (System.in);
        int calData = Integer.parseInt(scan.nextLine().trim());
        
        array = new long[calData + 1];
        System.out.println(calculate(calData));
        
        scan.close();
    }
    
    public static long calculate(int data) {
        if(data == 0) {
            array[data] = 0;
            
            return 0;
        }
        
        if(data == 1) {
            array[data] = 1;
            
            return 1;
        }
        
        if(array[data] > 0) {
            return array[data];
        }
        
        array[data] = calculate(data-1) + calculate(data-2);
        
        return array[data];
    }
}