백준

[백준] 피보나치 수 5 (10870번)

shs00925 2024. 8. 15. 01:41

코드 힌트

재귀를 이용한 피보나치 수열 계산

  • 피보나치 수열은 이전 두 항의 합으로 현재 항을 계산합니다.
  • 이 문제에서는 재귀를 사용하여 피보나치 수를 계산합니다.

재귀 함수 구현하기

  • 함수 pibo(int n)은 피보나치 수열의 n번째 항을 계산합니다.
  • 기본 사례로 n이 0일 때와 1일 때의 값을 직접 반환합니다.
  • 그 외의 경우에는 pibo(n-1)과 pibo(n-2)를 재귀적으로 호출하여 두 값의 합을 반환합니다.

 


정답은 더보기 클릭

더보기
import java.io.*;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        // 입력을 받기 위해 BufferedReader 사용
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 출력하기 위해 BufferedWriter 사용
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 사용자로부터 입력 받은 값을 정수로 변환하여 n에 저장
        int n = Integer.parseInt(br.readLine());
        // n번째 피보나치 수를 계산하여 출력
        bw.write(pibo(n) + "\n");
        
        // 버퍼에 있는 내용을 출력하고 스트림을 닫음
        bw.flush();
        bw.close();
    }
    
    // 피보나치 수를 계산하는 재귀 함수
    static int pibo(int n) {
        // 기본 사례: 피보나치 수열의 0번째 항은 0
        if (n == 0) {
            return 0;
        }
        // 기본 사례: 피보나치 수열의 1번째 항은 1
        else if (n == 1) {
            return 1;
        }
        // 재귀 호출을 통해 피보나치 수열의 n번째 항을 계산
        return pibo(n-1) + pibo(n-2);
    }
}