728x90
반응형
팩토리얼
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.
출력
첫째 줄에 N!을 출력한다.
입력 예제
10
출력 예제
3628800
풀이
팩토리얼은 0이상의 정수 N을 1부터 N까지 곱하는 것으로, 1*2*3*...*(N-1)*N이다.
이를 파이썬으로 구현하는 방법은 여러가지 존재한다. 나는 각각 반복문을 사용하는 방법, 재귀함수를 사용하는 방법, 그리고 math 모듈의 factorial 함수를 사용하여 간단하게 구하는 방법 3가지로 나누어 작성하였다.
1. 반복문 사용
n=int(input())
result=1
for i in range(1,n+1):
result*=i
print(result)
2. 재귀함수 사용
def factorial(a): #재귀함수
return a*factorial(a-1) if a>1 else 1 #삼항연산자 사용
n=int(input())
print(factorial(n))
3. math 모듈 사용
import math
n=int(input())
print(math.factorial(n))
728x90
반응형
'Algorithm > 백준' 카테고리의 다른 글
백준(Baekjoon) 2447번 별 찍기 - 10 문제 풀이 | 파이썬 Python 재귀함수 (0) | 2021.02.13 |
---|---|
백준(Baekjoon) 10870번 피보나치 수 5 풀이 | 파이썬 Python 재귀함수 (0) | 2021.02.12 |
백준(Baekjoon) 1316번 그룹 단어 체커 풀이 | 파이썬 Python (0) | 2021.02.12 |
백준(Baekjoon) 5622번 다이얼 문제 풀이 | 파이썬 Python (0) | 2021.02.11 |
백준(baekjoon) 1157번 단어 공부 풀이 | 파이썬 Python Counter을 활용한 알파벳 빈도 계산 (0) | 2021.02.11 |