EOZIN 2021. 10. 14. 16:38
728x90

리턴타입, 메소드명, 매개변수

콜스택 영역을 다 썼을 때 - stack overflow

1. 전역변수

public static int fac = 1;

    public static void factorial(int i) {
        if (i <= 1) {
            System.out.println("fac : " + fac);
        } else {
            fac *= i;
            factorial(i - 1);
        }
    }

2. 리턴

public static int factorial2(int i) {
        if (i <= 1) {
            return 1;
        } else {
            return i * factorial2(i - 1);
        }
    }

3. 매개변수 (* 중요)

/** 팩토리얼 시작값, 곱한 누적값 */
public static void factorial3(int n, int mul) {
    if (n <= 1) {
        System.out.println(mul);
    } else {
        factorial3(n - 1, n * mul);
    }
}