백준 문제풀이

[백준] 10872번 팩토리얼 - 재귀(1) [JAVA]

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

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

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


     문제

     문제 풀이

  • 기본 재귀함수 문제다.
  • *재귀함수란?
    - 본인을 다시 호출하는 함수
    - (주의) 본인을 다시 호출하는 함수이기 때문에 무한 루프에 빠질 가능성이 있다. 
    - (중요) 무한 루프에 빠지지 않기 위해 base case를 만들어 놓는 것이 매우 중요
  • 푼 방법
    1) 정수 N 이 1일때, 1을 return해주는 base case 를 만들어 무한 루프에 빠지지 않도록 한다.
    2) 정수 N 까지의 곱을 구하는 팩토리얼이므로, factorial 함수는 정수 N 과 factorial(N-1)이 계속해서 진행되도록 하면 된다.

        JAVA code

import java.io.*;

public class baekjoon10872 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int answer = factorial(N);
        System.out.println(answer);
    }

    static int factorial(int N) {
        if (N <= 1)
            return 1;
        else {
            return N * factorial(N - 1);
        }
    }
}