2020-03-25
描述
计算两个整数 n
和 k
的二项式系数。
提示
- 使用
Number.isNaN()
检查n
和k
是否为NaN
- 如果
k
小于等于0
,或者大于等于n
,或者等于1
,或者等于n-1
时,需返回适当的值 - 如果
n-k
小于k
,则相应的切换其值 - 从
2
开始循环到k
来计算二项式系数 - 使用
Math.round()
将有误差的结果进行四舍五入
代码
const binomialCoefficient = (n, k) => {
if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
if (k < 0 || k > n) return 0;
if (k === 0 || k === n) return 1;
if (k === 1 || k === n - 1) return n;
if (n - k < k) k = n - k;
let res = n;
for (let j = 2; j <= k; j++) res *= (n - j + 1) / j;
return Math.round(res);
};
示例
求 C_8^2:
binomialCoefficient(8, 2); // 28