본문 바로가기

온라인 코딩/재귀 호출(Recursive Call)

[백준] 10872번 팩토리얼

 

 

문제

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
int Recursive(int N) {
    if (N == 1 || N == 0)
        return 1;
 
    return N * Recursive(N - 1);
}
int main() {
    int N;
    std::cin >> N;
    std::cout << Recursive(N) << "\n";
}
 

 

후기

이 문제를 해결하기 위한 키워드는 재귀 함수이다.

 

함수가 Return을 할 때 주는 반환 값을 곱 하고 그 곱한 것을 이전 함수에 다시 곱하는 원리로 풀었다. 대부분 이 방법으로 풀었을 것이며 이 방법이 가장 보편적이다.

 

사실 우선순위 큐 문제를 하나 풀려고 했지만 머리가 아파서 비교적 쉬운 문제를 복습 겸 풀었다. 

머리가 아프면 문제 풀 의욕도 사라지는 거 같다..

 

출처 및 레퍼런스

문제 링크:https://www.acmicpc.net/problem/10872

 

관련 글

[온라인 코딩/재귀 호출(Recursive Call)] - [백준] 1074번 Z