Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 팩토리얼 (10872) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 팩토리얼 (10872) (자바/Java)

luke-king 2024. 3. 11. 17:13

 

 

 

 

 

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

 

10872번: 팩토리얼

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

www.acmicpc.net

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

 

 

풀이.


 

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();

        System.out.println(factorial(num));

    }

    static int factorial(int num) {
        if (num == 0) {
            return 1;
        }
        return num * factorial(num - 1);
    }
}

 

이번 문제는 팩토리얼 값을 구해주는 문제이다.

 

팩토리얼이란?

수를 단계적으로 곱한다는 뜻이다. 숫자 옆에 !를 붙여서 표현한다.

예시를 보면

5! = 5*4*3*2*1 = 120

4! = 4*3*2*1 = 24

이렇게 단계적으로 곱한 값을 말한다.

 

필자는 재귀함수를 이용해 풀었다.

사실 팩토리얼만 이해만 한다면 크게 어렵지 않을거라 생각한다.

 

문제 중 주의할 점은 0을 입력하면 에러가 나온다. 문제에서는 0을 입력할 때 1이 나와야 하므로

조건문을 걸어 입력값이 0 이라면 1을 return 해주면 된다.