문제: https://www.acmicpc.net/problem/27433
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
System.out.println(factorial(N));
}
public static long factorial(int n) {
if(n == 0) return 1;
return n * factorial(n - 1);
}
}
2. 설명
재귀를 기반으로 한 팩토리얼입니다. factorial 함수의 인자인 n값이 0이라면 1을 아니라면 n * factorial을 반환하면 됩니다. 이 때 반환형을 long으로 하지 않으면 오버플로우가 발생하기에 long형으로 반환해주어야 합니다.
3. 정리
- 오버플로우만 조심하면 된다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 12891번: DNA 비밀번호 [Java] (2) | 2024.01.11 |
---|---|
백준 알고리즘 - 4779번: 칸토어 집합 [Java] 실패 (0) | 2023.10.18 |
백준 알고리즘 - 20920번: 영단어 암기는 괴로워 [Java] (0) | 2023.10.12 |
백준 알고리즘 - 26069번: 붙임성 좋은 총총이 [Java] (0) | 2023.10.10 |
백준 알고리즘 - 25192번: 인사성 밝은 곰곰이 [Java] (0) | 2023.10.08 |