💻 Algorithm/재귀

[JAVA] 백준 27433 - 팩토리얼2

dlalwl_jpg 2023. 11. 20. 09:22

브론즈 V

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

 

27433번: 팩토리얼 2

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

www.acmicpc.net

문제

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


입력

첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다.


출력

첫째 줄에 N!을 출력한다.


접근방법

재귀를 이용하여 n * (n - 1)이 n이 0이 될 때까지 반복하여 N!를 계산하였다.


코드

package 재귀;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BRONZE5_BJ27433 {
    /*
    https://www.acmicpc.net/problem/27433
    팩토리얼2
     */
    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        //N입력
        long N = Integer.parseInt(br.readLine());

        System.out.println(calculate(N));

    }

    public static long calculate(long n){

        if(n == 0)
            return 1;

        else{
            return (n * calculate(n - 1));
        }
    }
}