博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 递归 汉诺塔的例子
阅读量:4689 次
发布时间:2019-06-09

本文共 587 字,大约阅读时间需要 1 分钟。

程序调用自身的编程技巧称为递归。

//汉诺塔的游戏,n为圆盘编号数量,编号,a,b,c代表的是三个柱子
var hanio=function(n,a,b,c){
    if(n>0){
        hanio(n-1,a,c,b);
        document.writeln('Move n '+n+" form "+a+' to '+c);
        document.write("<br />");
        hanio(n-1,b,a,c)
    }
}    
hanio(3,'a','b','c')
}
//Move n 1 form a to c
//Move n 2 form a to b
//Move n 1 form c to b
//Move n 3 form a to c
//Move n 1 form b to a
//Move n 2 form b to c
//Move n 1 form a to c
    //下面是一个尾递归函数
    var func=function(i,a){
        a = a || 1;
        if(i<2){
            return a;
        }
        return func(i-1,a*i)
    }
    document.write(func(4));  //24   (1*4=4  4*3=12  12*2=24)

转载于:https://www.cnblogs.com/liujinyu/p/3597985.html

你可能感兴趣的文章
lock_sga引起的ksvcreate :process(m000) creation failed
查看>>
数据库插入数据乱码问题
查看>>
OVER(PARTITION BY)函数用法
查看>>
altium annotate 选项设置 complete existing packages
查看>>
【模式识别与机器学习】——SVM举例
查看>>
【转】IT名企面试:微软笔试题(1)
查看>>
IO流入门-第十章-DataInputStream_DataOutputStream
查看>>
DRF的分页
查看>>
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
查看>>
IIS的ISAPI接口简介
查看>>
python:open/文件操作
查看>>
16 乘法口诀输出
查看>>
mac 常用地址
查看>>
鼠标经过切换图片
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
C程序的启动和终止
查看>>
tomcat 和MySQL的安装
查看>>
11.5 内部类
查看>>