Algorithm/백준

백준(Baekjoon) 10872번 팩토리얼 문제 풀이 | Python 파이썬 재귀함수

daeunnniii 2021. 2. 12. 20:56
728x90
반응형

팩토리얼

www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

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

www.acmicpc.net

문제

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
반응형