알고리즘 & 자료구조/코딩테스트
[baekjoon] 10872번 팩토리얼 (재귀)
인디아나쥰이
2021. 1. 25. 19:13
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1 복사
10
예제 출력 1 복사
3628800
예제 입력 2 복사
0
예제 출력 2 복사
1
필요한 개념
팩토리얼 : 서로 다른 n개를 나열하는 경우의 수를 의미, 기호로는 n!
계산은..
n! = n(n-1)(n-2)(n-3)...1
1이 될때 까지 모든수를 곱해준다.
※ 0! 은 1 이다
ex)
4! = 4 x 3 x 2 x 1
= 4 x (4-1)!
= 4 x 3!
따라서
1! = 1 x (1-1)!
1! = 1 x 0! =>> 1 = 1 x 0! 이므로 0!은 1 이 된다.
* a! = (a-1)! x a
소스 코드
#include <iostream>
using namespace std;
int factorial(int n){
if (n <= 1)
return 1;
else
return n * factorial(n - 1);
}
int main(void){
int num;
cin >> num;
cout << factorial(num);
}728x90
반응형