관리 메뉴

제뉴어리의 모든것

백준 10872 - 팩토리얼 (재귀) 본문

알고리즘

백준 10872 - 팩토리얼 (재귀)

제뉴어리맨 2022. 4. 21. 19:20

아주 심플하고 아주아주 베이직한 재귀 문제.

설명이 필요없다. 그냥 초심으로 풀어봤다.

 

내 코드

import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        System.out.println(getFactorial(n));
    }

    public static int getFactorial(int n)
    {
        if(n <= 1)
            return 1;

        return n * getFactorial(n-1);
    }
}

 

재귀 함수 설계시 알아야할점.

1. 당연히 재귀함수 내에 자기 자신함수를 호출하는 부분이 있어야함.

2. 처리하는 대상을 쪼개고 쪼개 결국 더이상 쪼개지는 않는 값이 무엇인지 생각을 해보아야함 (여기서는 1에 해당)

3. 더이상 쪼개지지 않는 값이 input으로 들어왔을때 리턴을 해주고

그렇지 않은 경우는 계속 본인 함수를 호출하는 개념을 기억해둘것.

 

 

 

아래는 본문


팩토리얼 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 106634 54429 45111 51.366%

문제

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

입력

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

출력

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

예제 입력 1 복사

10

예제 출력 1 복사

3628800

예제 입력 2 복사

0

예제 출력 2 복사

1

출처