js数据结构与算法--递归
递归,函数自己调用自己
return
- 返回值,
- 后面的代码不执行
function fn(num){
console.log(num)
if(num == 0){
return;
}
fn(num-1)
}
fn(10)

1-100之间,把所有能被3并且能被5整除的数获到,然后累加求和
for循环
function fn(num) {
var sum = 0;
for (var i = 0; i < num; i++) {
if (i % 3 == 0 && i % 5 == 0) {
sum += i;
}
}
return sum;
}
console.log(fn(100))
递归
function fn(num) {
if (num > 100) {
return 0;
}
if (num % 15 == 0) {
return num + fn(num + 1)
}
return fn(num + 1)
}
console.log(fn(1));
// 1 -> fn(1+1)
// 2 -> fn(2+1)
// ...
//15 -> 15+fn(15+1)
// 16 -> 15+fn(16+1)
// 30 -> 15+fn(30+1);
// 31 -> 15+30+fn(31+1)
// ...
// 15+30+45+60+75+90+fn(100)
// 15+30+45+60+75+90+fn(101) => 15+30+45+60+75+90+0
1-10之间,把所有能被2整除的数获到,然后累加求和
function fn(num) {
if (num > 10) {
return 0;
}
if (num % 2 == 0) {
return num + fn(num + 1)
}
return fn(num + 1)
}
console.log(fn(1));
// 1 => fn(1+1) => fn(2)
// 2 => 2+fn(2+1) => 2+fn(3)
// 3 => 2+fn(3+1) => 2+fn(4)
// 4 => 2+4+fn(4+1) => 2+4+fn(5)
//..
//10 2+4+6+8+10+fn(11)
//11 2+4+6+8+10+0
1-10以内所有偶数积
function fn(num){
if(num<1){
return 1;
}
if(num%2 ==0){
return num* fn(num-1)
}
return fn(num-1)
}
var result = fn(10);
console.log(result);
js数据结构与算法--递归的更多相关文章
- JS数据结构与算法——栈
JS数据结构与算法--栈 1.栈结构概念 栈(Stack)是一种先进后出(LIFO Last in First out)的线性表,先进栈的将会比后进栈的先出栈. 栈的限制是仅允许在一端进行插入和删除运 ...
- JS数据结构与算法-概述
JS数据结构与算法概述 数据结构: 计算机存储, 组织数据的方式, 就像锅碗瓢盆 算法: 一系列解决问题的清晰指令, 就像食谱 两者关系: 程序 = 数据结构 + 算法 邂逅数据结构与算法 什么是数据 ...
- Java数据结构和算法 - 递归
三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,……中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...
- JS数据结构与算法--双向链表
双向链表中链接是双向的:一个链向下一个元素,另一个链向上一个元素,如下图所示: 双向链表结构代码如下: class Node { constructor(element) { this.element ...
- JS数据结构及算法(二) 队列
队列是遵循先进先出的一种数据结构,在尾部添加新元素,并从顶部移除元素. 1.普通队列 function Queue() { this.items = []; } Queue.prototype = { ...
- JS数据结构及算法(一) 堆栈
最近在看<学习JavaScript数据结构与算法>这本书,感觉自己又涨知识了 哈哈... 现在将自己看的做个总结,也是巩固理解. 栈:先进后出,新添加和待删除的元素都保存在栈顶.可以用数组 ...
- JS数据结构与算法 - 剑指offer二叉树算法题汇总
❗❗ 必看经验 在博主刷题期间,基本上是碰到一道二叉树就不会碰到一道就不会,有时候一个下午都在搞一道题,看别人解题思路就算能看懂,自己写就呵呵了.一气之下不刷了,改而先去把二叉树的基础算法给搞搞懂,然 ...
- js数据结构与算法存储结构
数据结构(程序设计=数据结构+算法) 数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合. 传统上,我们把数据结构分为逻辑结构和物理结构. 逻辑结构:是指数据对象中数据元素之间 ...
- js数据结构与算法--单链表的实现与应用思考
链表是动态的数据结构,它的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成. 现实中,有一些链表的例子. 第一个就是寻宝的游戏.你有一条线索,这条线索是指向寻找下一条线 ...
随机推荐
- Ubuntu ls可以查看到文件,图形界面却看不到
解决方法:图形界面 Ctrl + h ,就可以显示出来隐藏文件
- (转)老男孩linux培训某节课前考试试题及答案分享
目录:[考试目的] ................................2[考试范围] ...............................2[答题策略] .......... ...
- 三节点Hadoop集群搭建
1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...
- WebGL之物体选择
原文地址: WebGL之物体选择 使用WebGL将图形绘制到画布后,如何与外部进行交互?这其中最关键的就是如何实现物体的选择.比如鼠标点击后判断是否选中了某个图形或图形的某个部分. 本节实现的效果: ...
- linux php 安装xdebug
我的环境是PHP 5.2.5,下载的xdebug是Xdebug v2.2.1 源码包 PHP 5.3.20用的是Xdebug v2.1.0 {版本一定要匹配} 下载地址为:http://xdebug ...
- spring技术小结
1.DI和IOC 依赖注入(Dependency Injection)还是控制反转(Inversion of Conctrol) bean通过依赖注入,注册到spring容器里面.spring容器通过 ...
- linux下的rpm软件包,rpm源码包和tar安装包
Linux下的软件包是一个独立的程序,用于Linux系统的包管理.在Linux下,软件包的安装方式很多样,不如Windows下的软件安装简单,Windows下基本上就是傻瓜式下一步下一步,而Linux ...
- 移植mavlink协议到STM32详细教程
1准备材料, 首先准备一个带串口的stm32程序(这里选用整点原子的官方串口例程这里自己去找不讲)作者:恒久力行 QQ:624668529,然后去mavlink官网下载mavlink源码,这里重点讲解 ...
- JavaScript获取样式值的几种方法学习总结
本人经过整理总结出以下获取样式值的方法,如有错误请各位大佬指正. 有四种方法:style,currentStyle,getComputedStyle,rules 与 cssRules方法. 1. st ...
- ArcGIS for Server新建站点异常,Failed to create the site.Failed to configure the server machine'XXXX',Server machine'XXXX' is not a local server machine.
系统环境:操作系统Win7 64位,装在虚拟机VM中,ArcGIS for Server 10.2.1 问题描述:ArcGIS for Server 10.2.1安装并授权完成后,站点初始化时显示 ...