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);
}
}
}
'백준 문제풀이' 카테고리의 다른 글
[백준] 2447번 별 찍기 10 - 재귀(3), 분할정복(1) [JAVA] (0) | 2022.09.28 |
---|---|
[백준] 피보나치 수 5 - 재귀(2) [JAVA] (0) | 2022.09.27 |
[백준] 2164번 카드2 [JAVA] (0) | 2022.09.14 |
[백준] 1158번 요세푸스 문제 [JAVA] (0) | 2022.09.14 |
[백준] JAVA로 백준 입력 받는 방법 (0) | 2022.09.14 |