
풀이
- 사실 브론즈5 문제라서 올릴까 했지만 🙄 기초문제이니 한문제씩 전부 다 정리해보자 🚀
- 수학적으로 팩토리얼을 구현하기 때문에 원래 처음 자바를 했을때라면 for문을 활용했겠지만 이제 재귀에도 가까워보자
- fac 메소드를 호출 시 ex) n == 3 일때
- 3 x fac(2)
- 3 x 2 x fac(1)
-> 결과적으로 스택에 쌓인 값들을 역으로 1 x 2 x 3 순서로 실행하여 반환
package problem_solving.math;
import java.util.Scanner;
public class BaekJoon_27433 {
public static Long fac(Long n) {
if( n == 1 || n == 0 ) {
return (long) 1;
}else {
return n * fac(n-1);
}
}
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Long n = Long.parseLong(sc.next());
System.out.println(fac(n));
}
}