View

[Python] Baekjoon 백준 10872번 팩토리얼

 

문제

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

입력

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

출력

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

 

 

재귀함수

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

a = int(input())

print(cal(a))

 

math.factorial()

import math
a = int(input())
print(math.factorial(a))

 

팩토리얼 :

factorial, 계승 이라 표현하며 1부터 지정된 숫자까지 모든 수의 곱을 의미

수학기호 : 숫자 뒤에 '!' 를 붙여 사용

 

math.factorial(x)

x 계승(factorial)을 정수로 반환합니다. x가 정수(integral)가 아니거나 음수면 ValueError를 발생시킵니다.

버전 3.9부터 폐지: 정숫값 부동 소수점(5.0과 같은)을 허용하는 것은 폐지되었습니다.

https://docs.python.org/ko/3/library/math.html

 

 

재귀호출로 팩토리얼 구하기

def factorial(n):
    if n == 1:      # n이 1일 때
        return 1    # 1을 반환하고 재귀호출을 끝냄
    return n * factorial(n - 1)    # n과 factorial 함수에 n - 1을 넣어서 반환된 값을 곱함
 
print(factorial(5))

출처) https://dojang.io/mod/page/view.php?id=2353

 

 

다양한 방법으로 팩토리얼 구하기

https://shoark7.github.io/programming/algorithm/several-ways-to-solve-factorial-in-python#3d

 

반응형
Share Link
reply