递归,函数自己调用自己

return

  1. 返回值,
  2. 后面的代码不执行
        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数据结构与算法--递归的更多相关文章

  1. JS数据结构与算法——栈

    JS数据结构与算法--栈 1.栈结构概念 栈(Stack)是一种先进后出(LIFO Last in First out)的线性表,先进栈的将会比后进栈的先出栈. 栈的限制是仅允许在一端进行插入和删除运 ...

  2. JS数据结构与算法-概述

    JS数据结构与算法概述 数据结构: 计算机存储, 组织数据的方式, 就像锅碗瓢盆 算法: 一系列解决问题的清晰指令, 就像食谱 两者关系: 程序 = 数据结构 + 算法 邂逅数据结构与算法 什么是数据 ...

  3. Java数据结构和算法 - 递归

    三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,……中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...

  4. JS数据结构与算法--双向链表

    双向链表中链接是双向的:一个链向下一个元素,另一个链向上一个元素,如下图所示: 双向链表结构代码如下: class Node { constructor(element) { this.element ...

  5. JS数据结构及算法(二) 队列

    队列是遵循先进先出的一种数据结构,在尾部添加新元素,并从顶部移除元素. 1.普通队列 function Queue() { this.items = []; } Queue.prototype = { ...

  6. JS数据结构及算法(一) 堆栈

    最近在看<学习JavaScript数据结构与算法>这本书,感觉自己又涨知识了 哈哈... 现在将自己看的做个总结,也是巩固理解. 栈:先进后出,新添加和待删除的元素都保存在栈顶.可以用数组 ...

  7. JS数据结构与算法 - 剑指offer二叉树算法题汇总

    ❗❗ 必看经验 在博主刷题期间,基本上是碰到一道二叉树就不会碰到一道就不会,有时候一个下午都在搞一道题,看别人解题思路就算能看懂,自己写就呵呵了.一气之下不刷了,改而先去把二叉树的基础算法给搞搞懂,然 ...

  8. js数据结构与算法存储结构

    数据结构(程序设计=数据结构+算法) 数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合. 传统上,我们把数据结构分为逻辑结构和物理结构. 逻辑结构:是指数据对象中数据元素之间 ...

  9. js数据结构与算法--单链表的实现与应用思考

    链表是动态的数据结构,它的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成. 现实中,有一些链表的例子. 第一个就是寻宝的游戏.你有一条线索,这条线索是指向寻找下一条线 ...

随机推荐

  1. 1.- Netty设计理念-异步和事件驱动

    0. 关键点 a). 非阻塞网络调用,异步方法立即返回 b). 选择器(Selector)使得单一线程就可监控很多连接上的事件. <dependency> <groupId>i ...

  2. 合理设置apache httpd的最大连接数--linux

    手头有一个网站在线人数增多,访问时很慢.初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能 ...

  3. UVALive 4262——Trip Planning——————【Tarjan 求强连通分量个数】

    Road Networks Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Stat ...

  4. <Linux系统minfo命令用法>

    minfo命令——ms-dos文件系统的各项参数的显示 minfo这个指令主要用于显示MS-DOS文件系统的各项参数,包括扇区数.磁头数.柱面数等. 参数主要有以下几个: -v 显示详细的参数 dri ...

  5. 如何远程连接非默认端口SQL Server

    SQL Server Management Studio建立远程SQL连接  连接的时候写: 127.0.0.1,49685\sqlexpress 记得使用逗号,不是冒号

  6. spring增强

    1.前置增强 接口:ISomeService public interface ISomeService { public void doSome(); } 类 public class MyBefo ...

  7. hibernate课程 初探单表映射1-8 hibernate持久化类

    java beans 的设计原则 1 公有的类 2 共有不带参数构造方法 3 私有属性 4 属性setter/getter方法 Studnet类: package com.ddwei.student; ...

  8. JQuery初识(二)

    一丶链式编程 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  9. HTTPS与SSL(二)

    CA Ca介绍 电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系 ...

  10. 微软AI发布会,集齐六大亮点召唤黑科技!

    7月12日,微软合作伙伴大会Inspire在华盛顿特区如火如荼地举行.同一天,在相隔5个时区的伦敦,微软还举办了一场关于人工智能的发布会.这是一场智能技术和情感体验两相交融的科技盛宴,既有黑科技,也有 ...