문제

문제출처 : Baekjoon

img

풀이

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Main function = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(function.factorial(n));
    }

    public int factorial(int n){
        if(n <= 1){
            return 1;
        }else{
            return n*factorial(n-1);
        }
    }
}

회고

  1. if(n==1) 로 조건을 주었더니 스택오버플로우 에러가 나서 무슨 문제인가 싶어서 고민해보니, test값으로 0이 들어올경우 -1 -2 ... 등등의 값이 들어가게 되어서 if(n<=1)로 조건을 주어야 했던것이다!