| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 256 MB | 168056 | 91508 | 75282 | 54.681% |
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
첫째 줄에 N!을 출력한다.
10
3628800
0
1
이 문제는 두가지 방법으로 풀 수 있다.
1) if~else, 반복문 사용
2) 재귀함수 사용
이것은 반복문을 사용해서 푼 방법이다.
n == 1, n == 0일 경우 n! 은 1이다.
1 이후 n의 경우 x라는 변수에 계속 곱해주었다.
n = int(input())
if n == 0:
x = 1
elif n == 1:
x = 1
else:
x = 1
for i in range(1, n+1):
x = x*i
print(x)
팩토리얼의 정석적인 풀이이다.
n = int(input())
def fact(n):
if n == 0 or n == 1:
return 1
else:
return n*fact(n-1)
print(fact(n))

단, 백준 문제에서 함수를 구현했을 때 주의할 점은
출력시 fact(n)을 하면 안되고 꼭 print(fact(n))처럼 함수를 print문 안에 넣어줘야한다는 것이다.
fact(n)은 함수를 실행하는 것이지, return 값을 출력하는 것은 아니다.