No sweet without sweat

[백준 10872 자바/JAVA] 팩토리 본문

백준

[백준 10872 자바/JAVA] 팩토리

Remi 2023. 3. 1. 19:36
728x90
반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int num = Integer.parseInt(br.readLine());

        int sum = factorial(num);
        System.out.println(sum);
    }

    static int factorial(int num) {
        if(num<2) return 1;
        return num * factorial(num - 1);
    }

}

함수 안에 함수를 지속적으로 호출하는  방법이 바로 재귀라고 한다.

 

고려할 점

1. 너무 많은 반복은 자바에서 스택오버플로우(StackOverFlow)를 발생시킨다.

호출하는만큼 메모리가 스택되어 메모리 차지율이 높아진다. 그리고 끝날 떄는 함수를 닫아서 스택 메모리에서 POP을 해 수행 속도 또한 느려진다.

-> 일반적으로 사용X (잘 못 쓰면 무한 루프되어 메모리터짐)

728x90
반응형
Comments