코드트리 챌린지

[코드트리] Factorial /재귀함수

우당탕탕코딩일기 2023. 10. 26. 14:18

 

https://www.codetree.ai/missions/5/problems/factorial?&utm_source=clipboard&utm_medium=text

 

Factorial


팩토리얼이란 차례로 곱한다는 뜻으로, 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 n!로 나타낸다. 재귀함수를 이용하여 n! 값을 구하는 프로그램을 작성해보세요.

0! = 1

1! = 1

2! = 2

3! = 6

n! = n * (n-1)!

...
와 같이 정의된다.

 

입력 형식

첫 번째 줄에 정수 N이 주어집니다.

  • 1 ≤ N ≤ 10

출력 형식

첫 번째 줄에 N! 값을 계산하여 출력합니다.

 

입출력 예제

예제1

입력:

5

 

출력:

120

 

 

 

 

내가 짠 코드


n = int(input())

def f(n):
    if n==1 :
        return 1
    
    return f(n-1)*n

print(f(n))

이것도 재귀함수의 기본적인 문제 중 하나이다. 

팩토리얼이란, 차례로 곱한다는 뜻으로, 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 n!로 나타낸다. 

 

재귀함수 문제이므로 가장 먼저할 것은 베이스케이스를 생각하는 것이다. 이 문제에서는 n==1 일때는 n-1 이 존재하지 않으므로 n==1 일때는 1을 리턴하도록 한다. 그 외에는 재귀적으로 처리가 가능하다. 자기 자신 곱하기 밑에 애들이므로 n*f(n-1)이다. 

728x90