JS递归
所谓递归,就是在函数内部又去调用自己。
例如,求阶乘问题,在fact函数内部又去调用fact函数了。
<scripttype="text/javascript">
/*
* 计算n的阶乘
* */
function fact(n){
if(1 == n){
return 1;
}
return n*fact(n-1);
}
alert(fact(5));
</script>
递归算法如果按照常规思路去理解是非常复杂的,函数调用是一层一层嵌套调用,然后一层一层返回。不妨换个思路去理解递归。
递归实际上就是将规模为n的问题降阶为n-1的问题进行求解。也就是去找n和n-1之间的关系,这道题也就解决了。