JavaScript语言的递归编程
2008-07-31 12:57
246 查看
关于递归的解释见《SICP》第1章。下面是个简单的递归编程题目。
题目:从1累加一直加到100的和是多少?
非递归的循环写法:
1run: function() var sum = 0;
3 for(var i=1;i<=100;i++) sum = sum + i;
5 }
6 console.log(sum);
7} 递归的写法:
上面这种代码在网上一搜就一大堆,下面的写法与它等价:
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
题目:从1累加一直加到100的和是多少?
非递归的循环写法:
1run: function() var sum = 0;
3 for(var i=1;i<=100;i++) 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(n<=1){ return 1; } else{ sum = arguments.callee(n-1)+n; return sum; } })(100));
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
相关文章推荐
- javascript高级编程之函数表达式 递归和闭包函数
- 第一章 JavaScript语言概述(中)----JavaScript起步编程
- JavaScript:世界上误解最深的语言-Java基础-Java-编程开发
- CodeTank 代码坦克 - 腾讯推出有趣的编程对战游戏,用游戏来学习 Javascript 开发语言
- JavaScript语言精髓与编程实践 - 勘误
- JavaScript语言精髓与编程实践 - 勘误
- 用80x86汇编语言编程--用递归方法求阶乘
- [已读]JavaScript语言精髓与编程实践
- JavaScript语言精髓与编程实践(第2版)
- JavaScript语言精髓与编程实践 - 勘误
- 2013年6月编程语言排行榜:JavaScript 回归前十
- "JavaScript语言精髓与编程实践"之调用函数的几种方法
- JavaScript语言精髓与编程实践(第2版)
- javascript高级编程之函数表达式 递归和闭包函数
- 【脚本语言系列】关于 JavaScript 多线程编程, 你需要知道的事
- JavaScript语言精髓与编程实践(第2版)
- JavaScript语言基础---(十五)应用编程练习--制作二级下拉菜单
- JavaScript 语言编程学习路线
- 【脚本语言系列】 关于 JavaScript 并行编程,你需要知道的事