문제
팩토리얼 공장에서는 로봇 한 대를 만들 때 서로 다른 부품 N개를 빠짐없이 한 번씩, 앞에서부터 순서대로 조립한다. 1번부터 N번까지의 부품을 조립하는 순서는 \(N!\)이며, 조립 순서에 조립 비용이 달라진다. 조립 순서에 따른 조립 비용을 확인하기 위해서는 먼저 가능한 조립 순서의 가짓수를 먼저 구해야 한다. 부품의 갯수를 나타내는 정수 \(N\)이 입력으로 주어질 때 가능한 조립 순서의 개수 \(N!\)을 출력하시오. 부품이 \(3\)개이면, 맨 앞에 쓸 부품을 \(3\)가지, 그다음 \(2\)가지, 마지막 \(1\)가지로 고를 수 있어 서로 다른 조립 순서가 \(3 \times 2 \times 1 = 6\)가지 생긴다. 부품이 \(N\)개일 때 이와 같은 곱이 \(N \times (N-1) \times \cdots \times 1\)이며, 이 값을 \(N!\)이라 부른다. \(0!=1\)로 정의한다(조립할 부품이 \(0\)개일 때, 순서를 정하는 방법은 빈 순서 하나뿐이다). |
입력
입력은 다음 형식으로 주어진다.
\(N\)
- 첫째 줄에 정수 \(N\)가 한 줄로 주어진다.
- 입력되는 값은 모두 정수이다.
- \(0 \le N \le 12\)
출력
다음 형식으로 출력한다.
첫째 줄에 \(N!\)의 값을 출력한다.
예시 1
입력
5
출력
120
설명
\(5! = 120\).
예시 2
입력
0
출력
1