JavaScript 语言的递归编程


Posted in Javascript onMay 18, 2010

题目:从1累加一直加到100的和是多少?

非递归的循环写法:

1run: function() { 
2 var sum = 0; 
3 for(var i=1;i<=100;i++) { 
4 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实现的UBB编码函数
Mar 09 Javascript
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
微信jssdk用法汇总
Jul 16 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
Sep 28 Javascript
jQuery中的一些小技巧
Jan 18 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
Mar 30 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
vue如何进行动画的封装
Sep 26 Javascript
Vue父组件监听子组件生命周期
Sep 03 Javascript
JS 树形递归实例代码
May 18 #Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 #Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
May 18 #Javascript
Javascript中的变量使用说明
May 18 #Javascript
Javascript实现的鼠标经过时播放声音
May 18 #Javascript
JavaScript 继承机制的实现(待续)
May 18 #Javascript
JavaScript 面向对象编程(2) 定义类
May 18 #Javascript
You might like
第三章 php操作符与控制结构代码
2011/12/30 PHP
php木马webshell扫描器代码
2012/01/25 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
Array对象方法参考
2006/10/03 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
webpack4 升级迁移的实现
2018/09/12 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
新闻学毕业生自荐信
2013/11/15 职场文书
销售顾问工作计划书
2014/08/15 职场文书
家长会后的感想
2015/08/11 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android