• 递归案例:汉诺塔问题


    package com.laughing.test;

    import java.util.Scanner;

    /**

     * 汉诺塔问题

     * 递归算法

     * @author Laughing

     * @time 2016年3月22日

     */

    public class HanNuoTa {

    private static int i=0;//移动步数

    /**

     * n个借助y移动到z上

     * @param n n个

     * @param x 起始点

     * @param y 借助点

     * @param z 落脚点

     */

    public static int move(int n,String x,String y,String z){

    if(n == 1){

    System.out.println(x+"-->"+z);

    i++;

    return i;

    }else{

    move(n-1, x, z, y);//n-1个从x借助z移动到y上

    System.out.println(x+"-->"+z);

    move(n-1,y,x,z);//n-1个从y借助x移动到z上

    i++;

    return i;

    }

    }

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    System.out.println("请输入n值:");

    int n = in.nextInt();

    int i = move(n,"x","y","z");

    System.out.println("移动的步数总共为:"+i);

    }

    }

    —————————————————————————————————————行走在人猿的并行线——Laughing_Lz
  • 相关阅读:
    HTML5 表单新增属性
    js中获取css属性
    Java 枚举(enum)【感觉不是很常用】
    Java数组
    Java的反射机制
    IO,NIO【重点掌握】,Socket,Channel等的网络编程
    多线程
    注解
    动态代理
    动态编译
  • 原文地址:https://www.cnblogs.com/Laughing-Lz/p/5306811.html
Copyright © 2020-2023  润新知