-
[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반응형'알고리즘 & 자료구조 > 코딩테스트' 카테고리의 다른 글
[baekjoon]C언어 10845번 (큐) (0) 2021.01.27 [baekjoon] 10828번 스택 (스택) (0) 2021.01.26 [프로그래머스] 완주하지 못한 선수 (0) 2021.01.25 [프로그래머스 C++] 모의고사 (0) 2021.01.21 [프로그래머스]두 개 뽑아서 더하기 (0) 2021.01.20