当利用js函数编写某个数的阶乘时,不清楚函数或者刚了解函数的人会不知道怎样利用函数高效简洁的编写解决方案,下面以5!(1*2*3*4*5)为例.
鄙人的解决方案利用函数递归:
function recursion{
if( n==0 )
return 1;
return ( n * recursion( n-1 ) );
}
var num = recursion( 5 );
//输出的结果为120
/*以上我们可以看出利用递归可以很快解决这类问题,但是凡事都有两面性,由于频繁的调用函数,会在性能上有很大开销,但是像这类小参数还不足以对当今强大的计算机系统构成威胁,只是再次提醒递归调用带来了方便的同时,也牺牲了性能的优势*/ |
|