데이터 엔지니어링 정복/Algorithm

[재귀] 백준 - 팩토리얼

eeaarrtthh 2021. 12. 11. 20:45
728x90
반응형

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

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

www.acmicpc.net

 

 

-문제풀이

숫자를 입력받고 재귀함수를 통해서 팩토리얼을 계산하면 된다.

만약 숫자 n을 입력받으면 재귀함수 안에서

n이 1보다 작거나 같으면 1이 반환되도록하고

그렇지 않으면 n * (n-1) 을 재귀함수의 매개변수로 넣어준다.

 

 

-자바

package recursive;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ10872 {
	
	public static int recur( int a ) {
		
		if( a <= 1 ) return 1;
		
		return a * recur( a-1 );
		
	}
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		
		System.out.println( recur(n) );
	}
}

 

-파이썬

from sys import stdin
input = stdin.readline
n = int( input() )

def recur( a ):
    if a <= 1:
        return 1
    return a * recur( a-1 )

print( recur(n) )
728x90
반응형