백준 10872번: 팩토리얼
https://www.acmicpc.net/problem/10872

처음에는 어라 이거 그냥 for문 때리면 되는 거 아닌가 하고
#include <iostream>
using namespace std;
int main()
{
int N;
int n = 1;
cin >> N;
if (N != 0)
{
for (int i = 1; i <= N; i++) { n *= i; }
}
cout << n;
}
이렇게 풀었었는데
가만히 생각해보니 이 문제는 재귀함수 카테고리에 들어 있어서 이렇게 풀면 안 될 것 같았다
#include <iostream>
using namespace std;
int fac(int n)
{
if (n == 0) { return 1; }
return n * fac(n - 1);
}
int main()
{
int N;
cin >> N;
cout << fac(N);
}
재귀함수 사용해서 다시 클리어
'백준' 카테고리의 다른 글
[백준] 7568번: 덩치 (C++) (0) | 2022.03.19 |
---|---|
[백준] 10870번: 피보나치 수 5 (C++) (0) | 2022.02.22 |
[백준] 2675번: 문자열 반복 (C++) (0) | 2022.01.14 |
[백준] 10809번: 알파벳 찾기 (C++) (0) | 2022.01.10 |
[백준] 10951번: A+B - 4 (C++) (0) | 2021.12.30 |