알고리즘 문제
팩토리얼
3jun
2018. 10. 1. 19:47
우선 결과값을 0!의 값인 1로 초기화해준다.
var result = 1;
n이 1 이상인 경우에는 반복문을 사용해서 팩토리얼 계산을 해준다.
if (n > 1) { for (var i = 1; i <= n; i++) { result = result * i; } }
결과값
function factorial(n) { var result = 1; if (n > 1) { for (var i = 1; i <= n; i++) { result = result * i; } } return result; } // 테스트 코드 console.log(factorial(10)); console.log(factorial(5)); console.log(factorial(3)); console.log(factorial(0));
3628800 120 6 1
사실 if문이 없더라도 n이 0인 경우에는 for 문의 조건에 따라서 for 문 내부가 실행되지 않기 때문에 아래와 같이 더욱 간단하게 고칠 수도 있다.
function factorial(n) { var result = 1; for (var i = 1; i <= n; i++) { result = result * i; } return result; } // 테스트 코드 console.log(factorial(10)); console.log(factorial(5)); console.log(factorial(3)); console.log(factorial(0));