본문 바로가기

TIL/Algorithm

Java 백준 10872번 문제 - 팩토리얼

반응형

팩토리얼 성공

시간제한 메모리 제한 제출 정답 맞은 사람 정답 비율

1 초 256 MB 80434 39653 33290 49.840%

문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N! 을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

출력

첫째 줄에 N!을 출력한다.

예제 입력 1 

10

예제 출력 1 

3628800

 


BufferedReader로 입력값을 받는다

int형 타입 N 변수에 입력값을 담고 

int형 타입 sum 변수에 누적 값을 담는다 이때, factorial(N) 메서드를 실행시켜서 누적한다

 

 

factorial 메서드는 숫자 a를 매개변수로 받고

If조건문으로 a가 1이하 일 때는 1을 리턴하고

 

다른 것은 재귀로 계속해서 리턴해준다

6 * factorial(5){
    5 * factorial(4){
       4 * factorial(3){
          3 * factorial(2){
             2 * factorial(1){
               return 1;
             }
          return 2 * 1;
          }
      return 3 * 2 * 1;
      }
   return 4 * 3 * 2 * 1;
   }
  return 5 * 4 * 3 * 2 * 1;
}
return 6 * 5 * 4 * 3 * 2 * 1;

 

이런 식으로 재귀 함수가 진행된다

 

 

반응형