팩토리얼은 수학에서 그 수보다 작거나 같은 모든 수의 곱을 말합니다. 기호는 !을 쓰이며, 팩토리얼이라고 말합니다.
만약 5라는 팩토리얼 수의 답을 알고 싶을 때, 느낌표의 기호를 붙여서 5! 라고 말합니다.
N! = N * (N-1) * (N-2) * (N-3) * (N-4)
5! = 5 * (5-1) * (5-2) * (5-3) * (5-4)
- 5! 의 공식
C++로 팩토리얼 구하는 방식으로는 반복문, 재귀로 주로 쓰곤 합니다.
재귀 이용 방법
int Factorial(int A){
if(A == 1) {
return 1;
}
return A * (Factorial(A-1));
}
재귀를 구조적으로 생각해봤을 때, A가 1에 수렴했을 때 if statement에 걸려서 1을 리턴합니다.
5 * 4 * 3 * 2 * 1 식으로 쌓이기 시작하고 역순으로 곱해서 전해져 옵니다.
반복문(Loop) 이용 방법
/*
* Loop Factorial
*/
int FactorialLoop(int N) {
int result = 1;
for(int i = 1; i <= N; i++) {
result *= i;
}
return result;
}
반복문은 1부터 N까지 곱해서 결과값을 도출하면 됩니다.
읽어주셔서 감사합니다.
'알고리즘 > 문제' 카테고리의 다른 글
백준 9012 괄호 - C++ 풀이 공유 (0) | 2021.02.24 |
---|---|
BOJ 10163 색종이 - C++ 풀이공유 (0) | 2021.02.16 |
백준 1316 그룹 단어 체커 - C++ 풀이공유 (0) | 2021.02.13 |
백준 10845 큐 - C++ 풀이공유 (0) | 2021.02.11 |
백준 1874 스택수열 - C++ 풀이 (0) | 2021.02.09 |