• 8、递归的两个案例


     1 package ren.laughing.datastructure.Instance;
     2 /**
     3  * 递归案例
     4  * @author Laughing_Lz
     5  * @time 2016年4月13日
     6  */
     7 public class RecuisionInstace {
     8     /**
     9      * 汉诺塔问题
    10      * 结束条件:当只有一个棋盘时候从x移动到z
    11      * n个棋盘可看作:将n-1个棋盘借助z从x挪到y上
    12      * 然后将x上最下面的棋盘挪到z上
    13      * 再将n-1个棋盘借助x从y挪到z上
    14      * @param n 棋盘数
    15      * @param x 起始点
    16      * @param y 过渡点
    17      * @param z 落脚点
    18      */
    19     public void hanio(int n,char x,char y,char z){
    20         if(n == 1){
    21             System.out.println("从"+x+"挪到"+z);
    22         }else{
    23             hanio(n-1, x, z, y);
    24             System.out.println("从"+x+"挪到"+z);
    25             hanio(n-1, y, x, z);
    26         }
    27     }
    28     /**
    29      * n位布尔型数的可能组合
    30      * 结束条件:若已递归到n为0时候,对m[0]赋值,再打印产生的组合
    31      * @param m 存放可能产生的组合
    32      * @param n n为m数组的下标最大值
    33      */
    34     public void coding(int[] m,int n){
    35         if(n == 0){
    36             m[n] = 0;
    37             for (int i=0;i<m.length;i++)
    38                 System.out.print(m[i]);
    39                 System.out.println();
    40             m[n] = 1;
    41             for (int i=0;i<m.length;i++)
    42                 System.out.print(m[i]);
    43                 System.out.println();
    44         }else{
    45             m[n] = 0;coding(m, n-1);//先对第m[n]位赋值为0,继续递归
    46             m[n] = 1;coding(m, n-1);//结束后再对m[n]位赋值为1,继续递归
    47         }
    48     }
    49     public static void main(String[] args) {
    50         RecuisionInstace r  = new RecuisionInstace();
    51         r.hanio(4, 'x', 'y', 'z');
    52         r.coding(new int[3], 2);
    53     }
    54 }
    —————————————————————————————————————行走在人猿的并行线——Laughing_Lz
  • 相关阅读:
    JS 异步编程
    JS XMLHttpRequest
    JS 日期
    JS DOM
    JS 异常处理
    JS BOM
    JS 正则表达式
    JS 面向对象
    (22)python PhantomJS
    HDU1698 线段树(区间更新区间查询)
  • 原文地址:https://www.cnblogs.com/Laughing-Lz/p/5385973.html
Copyright © 2020-2023  润新知