https://www.acmicpc.net/problem/10872
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
문제 풀이
dp 혹은 재귀를 이용하는 문제.
N이 12까지이므로 dp나 재귀 어느쪽을 사용해도 된다. dp는 작은 수부터 계산하고 해당 값을 저장하여 이전에 저장한 값을 이용하며, 재귀는 N부터 숫자를 줄여나가며 이후에 구해질 값에 숫자를 곱하는 방식으로 구현된다.
아래는 코드.
더보기
#include <iostream>
using namespace std;
long long fac(int N)
{
if (N <= 1)
{
return 1;
}
else return N * fac(N - 1);
}
int main()
{
int N;
cin >> N;
cout << fac(N);
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 27277] 장기자랑 (C++) (0) | 2024.12.14 |
---|---|
[백준 9328] 열쇠 (C++) (2) | 2024.12.13 |
[백준 6588] 골드바흐의 추측 (C++) (1) | 2024.12.11 |
[백준 1584] 게임 (C++) (0) | 2024.12.10 |
[백준 31845] 카드 교환 (C++) (1) | 2024.12.09 |