본문 바로가기

백준

[백준] 팩토리얼 10872번

728x90

코드 힌트

재귀함수 사용하기

  • 재귀함수는 함수가 자기 자신을 호출하는 함수입니다. 이 문제에서는 팩토리얼을 계산하기 위해 재귀함수를 사용합니다.

기본값 반환하기

  • 재귀함수에서 종료 조건을 설정하는 것이 중요합니다. n이 0이 될 때 1을 반환하도록 설정합니다. 이것은 팩토리얼의 기본값입니다 (0! = 1).

재귀 호출하기

  • 재귀 호출은 현재 값다음 재귀 호출의 결과와 곱하는 방식으로 진행됩니다. 예를 들어, n이 5일 때 5 * factorial(4)을 호출합니다. 이렇게 재귀적으로 호출하여 1까지 계산합니다.

BufferedReader와 BufferedWriter 사용하기

  • BufferedReader를 사용하여 입력 값을 읽고, BufferedWriter를 사용하여 결과를 출력합니다. 이러한 방식은 입출력 속도를 최적화하는 데 유리합니다.

 

 


정답은 더보기 클릭

더보기
import java.io.*;

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

        // 사용자로부터 정수를 입력받아 n에 저장
        int n = Integer.parseInt(br.readLine());

        // 주어진 정수 n에 대해 팩토리얼 결과를 계산
        int result = factorial(n);

        // 팩토리얼 결과를 출력
        bw.write(result + "\n");

        // 출력 버퍼를 비우고 BufferedWriter를 닫음
        bw.flush();
        bw.close();
    }

    // 팩토리얼을 계산하는 함수
    static int factorial(int n) {
        // n이 0일 때 1을 반환 (0! = 1이기 때문)
        if (n == 0) {
            return 1;
        }

        // 그렇지 않으면 n과 (n-1)!을 곱한 값을 반환
        return n * factorial(n - 1);
    }
}

 

728x90

'백준' 카테고리의 다른 글

[백준] 피보나치 수 5 (10870번)  (0) 2024.08.15
[백준] ACM 호텔 (10250번)  (0) 2024.08.15
[백준] OX퀴즈 8958번  (0) 2024.08.14
[백준] 더하기 사이클 1110번  (0) 2024.08.14
[백준] 괄호 9012번  (0) 2024.08.08