알고리즘/구현 & 그리디 & 브루트포스

[백준]JAVA - 10872번 팩토리얼

K.두부 2022. 7. 20. 21:53
반응형
풀이

1. int형의 범위를 넘어서기 때문에 long 타입으로 풀어야함.

2. 0! 는 1이다.

 

import java.util.Scanner;
public abstract class Main{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
long num = sc.nextLong();
// 0! = 1
if (num == 0) {
System.out.println(1);
} else {
long sum = fatorial(num);
System.out.println(sum);
}
}
static long fatorial(long num){
if (num == 1) {
return 1;
} else {
return num * fatorial(num-1);
}
}
}
num
num-1
sum
10
9
10*fatorial(9)
9
8
10*9*fatorial(8)
8
7
10*9*8*fatorial(7)
7
6
10*9*8*7*fatorial(6)
6
5
10*9*8*7*6*fatorial(5)
5
4
10*9*8*7*6*5*fatorial(4)
4
3
10*9*8*7*6*5*4*fatorial(3)
3
2
10*9*8*7*6*5*4*3*fatorial(2)
2
1
10*9*8*7*6*5*4*3*2*fatorial(1)
1
return 1
3628800

 

반응형