백준 문제풀이

[백준] 피보나치 수 5 - 재귀(2) [JAVA]

늦깍이 2022. 9. 27. 14:14

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

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net


     문제

     문제 풀이

  • 기본 재귀함수 문제다.
  • 푼 방법
    1) base case 를 생각한다.
    2) 피보나치의 수는 0 과 1로 시작한다. 첫 번째, 두 번째 수가 이미 정해져있으므로, base case는 fibo(0), fibo(1)이 되겠다.
    3) 피보나치는 f(n) = f(n-1) + f(n-2)를 하면 되는데, 앞서 base case가 설정되어있기 때문에, 0과 1에 도달할 때까지만 실행되는 것이다. base case는 꼭 신경도록 하자.

        JAVA code

import java.io.*;

public class baekjoon10870 {
    static int fibo(int N) {
        if (N <= 1)
            return N;
        else
            return fibo(N - 1) + fibo(N - 2);
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        int answer = fibo(N);
        System.out.println(answer);
    }
}