Algorithm/백준

[파이썬/백준 10872] 팩토리얼 - 팩토리얼 재귀호출 : def factorial(n)

제티맛초코 2023. 2. 15. 01:00

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

입력

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

출력

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

예제 입력 1 

10

예제 출력 1 

3628800

예제 입력 2 

0

예제 출력 2 

1

 

 


 

 

# sol.1 - for문 (40ms)

n = int(input())

fact = 1
if n>0:
    for i in range(1, n+1):
        fact *= i
print(fact)

 

# sol.2(1) - 함수 정의하기 (44ms)

def factorial(n):
    result = 1
    if n > 0 :
        result = n * factorial(n-1)
    return result

n = int(input())
print(factorial(n))
# sol.2(2) - 함수 정의하기 (40ms)

def factorial(n):
    if n == 0 :
        return 1
    return n * factorial(n-1)

n = int(input())
print(factorial(n))

 

처음에 for문과 while의 break를 혼용해서 써서 틀렸다.

팩토리얼은 자주 나오는 유형같으니 꼭 기억해놔야 한다.


 

파이썬 코딩 도장: 31.2 재귀호출로 팩토리얼 구하기

이번에는 재귀호출을 사용하여 팩토리얼을 구현해보겠습니다. 팩토리얼은 1부터 n까지 양의 정수를 차례대로 곱한 값이며 !(느낌표) 기호로 표기합니다. 예를 들어 5!은 5 * 4 * 3 * 2 * 1이며 결과는

dojang.io