팩토리얼
문제
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))
|
'알고리즘 문제 > 백준' 카테고리의 다른 글
[백준 - 11729] 하노이 탑 이동 순서 (0) | 2022.04.26 |
---|---|
[백준-10870] 피보나치 수 5 (0) | 2022.02.05 |
[백준-3009] 네 번째 점 (0) | 2022.02.05 |
[백준-11653] 소인수분해 (0) | 2022.01.16 |
[백준-1011] Fly me to the Alpha Centauri (0) | 2022.01.16 |