JavaScript 语言的递归编程_javascript技巧
程序员文章站
2024-04-03 12:50:22
...
题目:从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));
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
上一篇: php连接数据库,该如何解决
下一篇: C++操作mysql方法总结(1)
推荐阅读
-
JavaScript 语言的递归编程_javascript技巧
-
JS中简单的实现像C#中using功能(有源码下载)_javascript技巧
-
一个特殊的排序需求的javascript实现代码_javascript技巧
-
js中使用replace方法完成某个字符的转换_javascript技巧
-
js中的内部属性与delete操作符介绍_javascript技巧
-
写出更好的JavaScript之undefined篇(上)_javascript技巧
-
包含中国城市的javascript对象实例_javascript技巧
-
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法_javascript技巧
-
Js实现滚动变色的文字效果_javascript技巧
-
Firefox+FireBug使JQuery的学习更加轻松愉快_javascript技巧