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
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Python] Baekjoon 백준 1002번 터렛 (0) | 2021.08.29 |
---|---|
[Python] Baekjoon 백준 2750번 수 정렬하기 (0) | 2021.08.28 |
[Python] Baekjoon 백준 3053번 택시 기하학 (0) | 2021.08.28 |
[Python] Baekjoon 백준 4153번 직각삼각형 (0) | 2021.08.28 |
[Python] Baekjoon 백준 3009번 네 번째 점 (0) | 2021.08.28 |
reply