알고리즘 문제/백준
[백준-10872] 팩토리얼
freeParksey
2022. 2. 5. 03:50
팩토리얼
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1 복사
10
예제 출력 1 복사
3628800
예제 입력 2 복사
0
예제 출력 2 복사
1
문제 분석
- N! = N x N-1 x N-2 ... 2 x 1
- 0! = 1
- 순차적으로 1씩 빼서 곱하는 형태
해결
- 각 숫자를 함수로 생각
- 예외처리(중요)
- n이 0과 1인 경우 1을 반환해야 합니다
- n이 2인 경우 2를 반환
- n이 0과1인 경우와 2인 경우로 나눈 이유 : 1번이라도 함수 호출 줄이기 위해
1
2
3
4
5
6
7
8
9
|
val = int(input())
def fact(n):
if n == 0 or n == 1:
return 1
if n == 2:
return 2
return n * fact(n-1)
print(fact(val))
|