알고리즘

[백준] 10872번 : 팩토리얼 _ JAVA ( 주석 설명 ) 본문

백준 - JAVA/재귀

[백준] 10872번 : 팩토리얼 _ JAVA ( 주석 설명 )

wch_s 2023. 2. 10. 22:26

1번

 비재귀

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다.

        int N = Integer.parseInt(br.readLine()); //N! 계산을 위한 N을 입력받는다.

        int fact; //팩토리얼 변수

        fact = 1;

        for(int i=1;i<=N;++i){
            fact *= i; //팩토리얼을 계산한다.
        }

        System.out.println(fact); //계산한 값을 출력한다.
    }
}


 

2번

재귀

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다.

        int N = Integer.parseInt(br.readLine()); //N! 계산을 위한 N을 입력받는다.

        int fact;
        fact = solve(N); //N!을 구하기 위한 재귀함수를 실행한다.

        System.out.println(fact); //N!을 출력한다.
    }

    private static int solve(int N) {
        if(N>0) //N이 0보다 클 때까지만 해당 재귀를 반복한다.
            return N*solve(N-1);
        else
            return 1; //0!은 1이다.
    }
}