백준 문제풀이
[백준] 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);
}
}
}