关于阶加阶乘的算法
继续在codewars上找虐,这是一道递归的问题,给出一个数字N,求出n+(n-1)+(n-2)+…+1的结果 我一看,很简单嘛,递归 ##关于阶加阶乘的算法
function triangular (n) {
if (n < 1) {
return 0;
} else if (n === 1) {
return 1;
} else {
return triangular (n - 1) + n;
}
}
很简单嘛,哥学过递归 出来一看别人家的算法,被鄙视了
function triangular( n ) {
return (n > 0) ? ((n * n) + n) / 2 : 0;
}
代码量一行,用了阶加公式 n~ = n(n+1)/2
为了防止以后被鄙视,把阶乘公式也记一下
n!=n*(n-1)!
Written on June 18, 2015