递归:是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。递归指的是一个过程:函数不断引用自身,直到引用的对象已知。

//公园里面有200个桃子,每天吃掉一半,扔掉一个烂的,第6天剩余多少桃子

var x=200;
for(var i=0;i<6;i++){
x=parseInt((x/2))-1} //每天在吃掉一半,扔掉一个的过程中会可能出现奇数,所以要把奇数除以二的小数转化成整数 alert(x)

//公园里有一堆桃子,猴子每天能吃掉一半,扔掉一个烂的,发现第6天的时候剩余1个桃子,问刚开始有多少桃子

/*var s1=1;
for(var i=0;i<6;i++){
s1=(s1+1)*2} //当天的数量等于下一天的剩余数量加上1然后再乘以二
alert(s1)*/

  

//用递归做
//当天的剩余量=(下一天的剩余量+1)*2
//函数明确:给一个天数返回该天剩余的数量。
/*function shuliang(ts){
if (ts==6){
return 1;}
return (shuliang(ts+1)+1)*2} alert(shuliang(1))
*/ //第一次执行
/* function shuLiang(1){
return (shuLiang(2)+1)*2}*/ //94
//第二次执行
/*function shuLiang(2){
return (shuLiang(3)+1)*2} *///46
//第三次执行
/*function shuLiang(3){
return (shuLiang(4)+1)*2}*/ //22
//第四次执行
/*function shuLiang(4){
return (shuLiang(5)+1)*2} */ //10
//第四次执行
/*function shuLiang(5){
return (shuLiang(6)+1)*2}*/ //4
//第四次执行
/*function shuLiang(6){
return 1} */
//递归函数逐层往里进,逐层往外出 递归是一层层请求下去,而数据是一层层返回上来

用递归求1,2,3,4,5....n的和

function sum(num){
if(num==1){
return 1}
return num+sum(num-1);
} alert(sum(4))*/

  

浅谈JavaScript递归的更多相关文章

  1. 浅谈javascript函数节流

    浅谈javascript函数节流 什么是函数节流? 函数节流简单的来说就是不想让该函数在很短的时间内连续被调用,比如我们最常见的是窗口缩放的时候,经常会执行一些其他的操作函数,比如发一个ajax请求等 ...

  2. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

  3. 浅谈JavaScript浮点数及其运算

    原文:浅谈JavaScript浮点数及其运算     JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题 ...

  4. 浅谈 JavaScript 编程语言的编码规范

    对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散.很容易学习,并运用到自己的代码中.也正因为这样,JavaScript 的编 ...

  5. 浅谈javascript的原型及原型链

    浅谈javascript的原型及原型链 这里,我们列出原型的几个概念,如下: prototype属性 [[prototype]] __proto__ prototype属性 只要创建了一个函数,就会为 ...

  6. 浅谈JavaScript中的null和undefined

    浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运 ...

  7. 浅谈JavaScript中的正则表达式(适用初学者观看)

    浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...

  8. [转载]浅谈JavaScript函数重载

     原文地址:浅谈JavaScript函数重载 作者:ChessZhang 上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试).面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都 ...

  9. 【javascript】浅谈javaScript的深拷贝

        前言: 最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时 ...

随机推荐

  1. bzoj2884 albus就是要第一个出场

    Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S 的幂集2^S定义为S 所有子集构成的集合.定义映射 f ...

  2. 设计模式的征途—3.抽象工厂(Abstract Factory)模式

    上一篇的工厂方法模式引入了工厂等级结构,解决了在原来简单工厂模式中工厂类职责太重的原则,但是由于工厂方法模式的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,从而增加系统开销.那么,我们应该 ...

  3. [Git]05 如何使用分支

     作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发 ...

  4. .Net Core Session使用

    Sessiong 添加程序集 Microsoft.AspNetCore.Session 在Startup.cs 的 ConfigureServices中添加Session中间件设置 // sessio ...

  5. Silverlight的DataGrid合并单元格

    现在也不知道还有没有同学做Silverlight开发了,我是一个Silverlight菜鸟,遇到问题也很难百度查到.就简单的记录一下这两天遇到的问题,并做了一个简单的小Demo,希望能够帮助到其他同学 ...

  6. Transform java future into completable future 【将 future 转成 completable future】

    Future is introduced in JDK 1.5 by Doug Lea to represent "the result of an asynchronous computa ...

  7. 由于losf引起的pxc启动报错处理

    PXC主节点启动完成后,再启动node1,error日志报错: 2017-05-02T15:23:42.830888Z 0 [ERROR] WSREP: Failed to read 'ready & ...

  8. java泛型探索——泛型类

    本文主要讨论一下如何声明泛型类,讨论的范围涉及构造函数.静态成员.内部类. 构造函数 泛型的类型参数首先声明在首部: public class Pair<T,U> { private fi ...

  9. Net分布式系统之六:微服务之API网关

    本人建立了个人技术.工作经验的分享微信号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件“API网关”. 一.引言 ...

  10. Configure HttpClient correctly

    References: [1] http://dev.bizo.com/2013/04/sensible-defaults-for-apache-httpclient.html We have hit ...