백준

1003번 피보나치 함수 / BOJ / acmicpc.net

건이두 2020. 1. 27. 22:19
728x90

문제링크 : https://www.acmicpc.net/problem/1003
제출링크 : https://www.acmicpc.net/source/17178118

import java.util.Scanner;

/**
 * 1003번 피보나치 함수 / BAEKJOON ONLINE JUDGE / acmicpc.net
 * 문제링크 : https://www.acmicpc.net/problem/1003
 * 제출링크 : https://www.acmicpc.net/source/17178118
 */
public class Main {
    public void solve() {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();

        for(int t=0; t<T; ++t) {
            int N = sc.nextInt();
            answer(N);
        }

        /**
         * #테스트 결과
         * 11 개, 0~10까지 테스트 해보면 아래와 같은 결과를 얻을 수 있습니다.
         * 11
         * 0
         * 1
         * 2
         * 3
         * 4
         * 5
         * 6
         * 7
         * 8
         * 9
         * 10
         * 0(1) 1(0)
         * 0(0) 1(1)
         * 0(1) 1(1)
         * 0(1) 1(2)
         * 0(2) 1(3)
         * 0(3) 1(5)
         * 0(5) 1(8)
         * 0(8) 1(13)
         * 0(13) 1(21)
         * 0(21) 1(34)
         * 0(34) 1(55)
         */
//        for(int t=0; t<T; ++t) {
//            int N = sc.nextInt();
//            fibonacci(N);
//            System.out.printf("0(%d) 1(%d)\n", mN0, mN1);
//            mN0 = 0;
//            mN1 = 0;
//        }
    }

    public void answer(int N) {
        int[] d0 = new int[N+1];
        int[] d1 = new int[N+1];

        int r0;
        int r1;

        d0[0] = 1;
        d1[0] = 0;

        if(N+1 >= 2) {
            d0[1] = 0;
            d1[1] = 1;
        }

        for(int i=2; i<=N; ++i) {
            d0[i] = d0[i-1] + d0[i-2];
            d1[i] = d0[i-1] + d1[i-1];
        }

        System.out.printf("%d %d\n", d0[N], d1[N]);
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.solve();
    }

    /**
     * 위으 테스트 결과를 얻기 위한 코드 입니다.
     */
//    public int mN0 = 0;
//    public int mN1 = 0;
//
//    public int fibonacci(int n) {
//        if (n == 0) {
//            mN0++;
//            return 0;
//        } else if (n == 1) {
//            mN1++;
//            return 1;
//        } else {
//            return fibonacci(n-1) + fibonacci(n-2);
//        }
//    }
}
728x90