JavaScript 语言的递归编程_javascript技巧
程序员文章站
2024-02-02 13:54:58
...
题目:从1累加一直加到100的和是多少?
非递归的循环写法:
1run: function() {
2 var sum = 0;
3 for(var i=1;i4 sum = sum + i;
5 }
6 console.log(sum);
7}
递归的写法:
var testCase = {
sum: 0,
run: function(n) {
if(n>=100) {
return 100;
}
else {
sum = n+ testCase.run(n+1);
return sum;
}
}
};
console.log(testCase.run(1));
上面这种代码在网上一搜就一大堆,下面的写法与它等价:
console.log((function(n){
var sum=0;
if(nreturn 1;
}
else{
sum = arguments.callee(n-1)+n;
return sum;
}
})(100));
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
非递归的循环写法:
复制代码 代码如下:
1run: function() {
2 var sum = 0;
3 for(var i=1;i4 sum = sum + i;
5 }
6 console.log(sum);
7}
递归的写法:
复制代码 代码如下:
var testCase = {
sum: 0,
run: function(n) {
if(n>=100) {
return 100;
}
else {
sum = n+ testCase.run(n+1);
return sum;
}
}
};
console.log(testCase.run(1));
上面这种代码在网上一搜就一大堆,下面的写法与它等价:
复制代码 代码如下:
console.log((function(n){
var sum=0;
if(nreturn 1;
}
else{
sum = arguments.callee(n-1)+n;
return sum;
}
})(100));
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
推荐阅读
-
JavaScript 语言的递归编程_javascript技巧
-
JavaScript中常用的运算符小结_javascript技巧
-
JavaScript创建命名空间(namespace)的最简实现_javascript技巧
-
URL地址中的#符号使用说明_javascript技巧
-
Js实现双击鼠标自动滚动屏幕的示例代码_javascript技巧
-
JS实现下拉框的动态添加(附效果)_javascript技巧
-
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题_javascript技巧
-
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML_javascript技巧
-
js阻止事件追加的具体实现_javascript技巧
-
按下回车键指向下一个位置的一个函数代码_javascript技巧