zoukankan      html  css  js  c++  java
  • js 递归 汉诺塔的例子

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

    //汉诺塔的游戏,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)

  • 相关阅读:
    软件使用[17]
    软件使用[20]
    软件使用[12]
    软件使用[10]
    软件使用[22]
    软件使用[06]
    软件使用[11]SlickEdit
    软件使用[19]
    uva 10717【Mint】
    uva 10791【 Minimum Sum LCM】
  • 原文地址:https://www.cnblogs.com/liujinyu/p/3597985.html
Copyright © 2011-2022 走看看