https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
첫 번째 시도
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static int fact(int num) {
if (num == 0) {
return 1;
} else {
return num * fact(num - 1);
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
System.out.println(fact(a));
}
}
해결 방법
재귀함수를 쓸 때 return 에 변수와 함수 자기 자신을 써서 팩토리얼 계산을 했다. if문으로 num이 0일 경우를 찾아 return 1로 했다.
어려웠던 점 / 고쳐야할 점
재귀함수 개념이 익숙치 않았다.
반응형
'Coding > Problem Solving' 카테고리의 다른 글
[Problem Solving/Java] 백준 2447번 - 별 찍기 - 10 (0) | 2024.01.08 |
---|---|
[Problem Solving/Java] 백준 10870번 - 피보나치 수 5 (0) | 2024.01.05 |
[Problem Solving/Java] 백준 10757번 - 큰 수 A+B (0) | 2024.01.05 |
[Problem Solving/Java] 백준 2839번 - 설탕 배달 (2) | 2024.01.05 |
[Problem Solving/Java] 백준 2775번 - 부녀회장이 될테야 (0) | 2024.01.05 |