팩토리얼( Factorial )이란?
- 팩토리얼은 우리말로 "계승"이라고 부르고, 기호로는 느낌표(!)를 사용합니다. n!에서 n이 하나의 자연수일 때 1에서 n까지의 모든 자연수를 곱한 결과를 나타냅니다.
팩토리얼 풀이
- 팩토리얼 로직은 재귀 함수로 구현할 수 있습니다. 하지만, 재귀 함수는 내부에서 계속해서 함수를 호출하며 스택 프레임을 형성하기 때문에 성능에 좋지 못하고 스택 오버플로우 문제도 발생될 수도 있습니다. 그렇기 때문에 재귀 함수 버전과 반복문 버전으로 나누어 구현하였습니다.
JavaScript 팩토리얼 풀이
let input = require("fs").readFileSync("/dev/stdin").toString();
function recursiveFactorial(number) {
if (number <= 1) {
return 1;
}
return number * recursiveFactorial(number - 1);
}
function factorial(number) {
if (number <= 1) {
return 1;
}
let result = 1;
for (let i = 2; i <= number; ++i) {
result *= i;
}
return result;
}
console.log(recursiveFactorial(input));
console.log(factorial(input));
C++ 팩토리얼 풀이
#include<iostream>
int RecursiveFactorial(int number){
if(number <= 1){
return 1;
}
return number * RecursiveFactorial(number - 1);
}
int factorial(int number){
if(number <= 1){
return 1;
}
int result = 1;
for(int i = 2; i <= number; ++i){
result *= i;
}
return result;
}
int main(){
int number;
std::cin >> number;
std::cout << RecursiveFactorial(number);
std::cout << factorial(number);
}