zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript语言的递归编程

2023-06-13 09:14:18 时间
题目:从1累加一直加到100的和是多少?

非递归的循环写法:
复制代码代码如下:

1run:function(){
2varsum=0;
3for(vari=1;i<=100;i++){
4sum=sum+i;
5}
6console.log(sum);
7}

递归的写法:

复制代码代码如下:

vartestCase={
sum:0,
run:function(n){
if(n>=100){
return100;
}
else{
sum=n+testCase.run(n+1);
returnsum;
}
}
};
console.log(testCase.run(1));

上面这种代码在网上一搜就一大堆,下面的写法与它等价:
复制代码代码如下:
console.log((function(n){
varsum=0;
if(n<=1){
return1;
}
else{
sum=arguments.callee(n-1)+n;
returnsum;
}
})(100));

这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。