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

 

15624번: 피보나치 수 7

첫째 줄에 n번째 피보나치 수를 1,000,000,007으로 나눈 나머지를 출력한다.

www.acmicpc.net

코드설명

DP 문제입니다.

 

피보나치의 점화식인 Fn = Fn-1 + Fn-2 를 그대로 구현하면 됩니다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static int N;
	public static long[] dp = new long[1000001];
	public static void main(String[] args) throws IOException{
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer st = new StringTokenizer(br.readLine());
    	
    	N = Integer.parseInt(st.nextToken());
    	dp[0] = 0;
    	dp[1] = 1;
    	dp[2] = 1;
    	for(int i=2;i<=N;i++) {
    		dp[i] = ( dp[i-1] + dp[i-2] ) % 1000000007;
    	}
    	System.out.println(dp[N] % 1000000007);
    }
	
}

+ Recent posts