const fs = require('fs')
const [n, k] = fs.readFileSync('/dev/stdin').toString().trim()
.split(' ')
const fa = num => {
let result = 1
for(let i = num; i > 1; i--){
result *= i
}
return result
}
const solution = (n, k) => {
return n === k ? 1 : fa(n) / (fa(n-k) * fa(k))
}
console.log(solution(n,k))
주어진 이항계수를 계산하는 공식은 다음과 같다
프로그래머스에 동일한 문제가 있다.(구슬을 나누는 경우의 수 - 풀이)
재사용 했더니 런타임에러(RangeError)가 발생한다. 왜일까?
👉 입력값의 범위가 0 ~ 10인데 BigInt()를 사용했기 때문!
👉 toString()으로 'n'을 없애줘서 괜찮을줄 알았는데 아닌가보다
재귀함수를 이용해서 팩토리얼을 구현했는데 틀렸습니다
라고 표시된다
👉 ❓
function fa(num){
return num > 1 ? num*fa(num-1) : num
}