[백준 27433] 팩토리얼 2(재귀함수)

alsry._.112·2023년 10월 24일
0

백준

목록 보기
93/102

🔗문제 풀러가기
단계별로 풀어보기 단계 21의 2번째 문제이다.

문제 분석

재귀함수를 사용하여 팩토리얼 값을 구하였다.

재귀함수?

재귀의 설명 그대로
함수에서 자기 자신을 다시 호출하는 함수 이다.
우리가 흔히 알고 있는 반복문(for, while) 등이 있는데, 이러한 반복문은 재귀함수로 대체 할 수 있다.
자기 자신을 계속해서 다시 호출하는 함수이니 조건문을 통해 종료조건을 꼭 설정 해야 한다.

이번에 풀어볼 문제 27433 팩토리얼 2은 재귀함수를 사용하는 대표적 예제인 팩토리얼을 구하는 문제이다.

코드

#include <iostream>
using namespace std;

long long Pac(long long n) // int형으로는 담을 수 없는 값이 올 수도 있으므로 int형이 아닌 longlong으로 해주어야 한다.
{
    if (n <= 1) // n이 1보다 작다면 재귀를 종료한다.
    {
        return 1;
    }
    return n * Pac(n - 1);
}

int main()
{
    int input;
    cin >> input;
    cout << Pac(input);
}

해석

  1. 수를 입력받은 후 재귀함수인 Pac을 실행해 출력한다.
  2. 만약 n이 1보다 작다면 재귀를 종료해야 하므로 1을 반환하고 재귀를 종료한다.
  3. Pac은 매개변수를 통해 longlong값 n을 받아 n * Pac(n-1)을 n <=1이 될때까지 계속 반환한다.
profile
소통해요

0개의 댓글