본문 바로가기

Coding Test/Step19. 조합론

[Java] 3단계. 팩토리얼 [10872번]

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

  • 예제 입력1
10
  • 예제 출력1
3628800
  • 예제 입력2
0
  • 예제 출력2
1

  • 문제 접근
    • 입력
      • N (0 <= N <= 12)
    • 출력
      • N 팩토리얼 출력
  • 문제 해결
    • 문제를 푸는 방법은 2가지
      1. 입력받은 N ~ 1까지 모두 곱하는 반복문 사용
      2. 재귀 함수 사용
  • 반복문 풀이 [메모리 : 14,084 KB / 시간 : 104 ms]
public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());
    int sum = 1;
    for(int i = N; i > 1; i--) {
        sum *= i;
    }

    System.out.println(sum);
}
  • 재귀 풀이 [메모리 : 14,176 KB / 시간 : 100 ms]
public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());

    System.out.println(factorial(N));
}

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