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 相关文章推荐
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
May 19 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
新手简单了解vue
May 29 Javascript
JS自定义右键菜单实现代码解析
Jul 16 Javascript
vue中使用vue-pdf的方法详解
Sep 05 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持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
使用python实现个性化词云的方法
2017/06/16 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python找出因数与质因数的方法
2019/07/25 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
体育教师求职信
2014/06/30 职场文书
民族学专业求职信
2014/07/28 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python