728x90

문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

 

출력

첫째 줄에 N!을 출력한다.

 

예제 입력 1

10

 

예제 출력 1 

3628800

 

예제 입력 2 

0

 

예제 출력 2 

1

 

알고리즘 분류

  • 수하
  • 구현
  • 집합론

 

문제 출처

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 


 

문제 해결 방법

  • 재귀 함수를 이용하여 팩토리얼을 구현하였다.
    • 0!와 1!는 1임을 주의한다.
int factorial(int n) {
    if (n <= 1) {    // 0! : 1, 1! : 1
        return 1;
    }
    return n * factorial(n - 1);
}
  • 팩토리얼(Factorial)과 관련된 내용은 이곳을 참고한다.
5!를 재귀 함수로 구현할 경우 ⓒ Quora

 

코드

#include <iostream>
using namespace std;

int N;

int factorial(int n) {
    if (n <= 1) {    // 0! : 1, 1! : 1
        return 1;
    }
    return n * factorial(n - 1);
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N;

    cout << factorial(N) << '\n';

    return 0;
}

 

채점 결과

 

참고

  • [단계별로 풀어보기] > [재귀]
  • 브론즈V

 

728x90