• 递归案例:汉诺塔问题


    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
  • 相关阅读:
    性能相关记录
    邮箱SMTP
    IntelliJ IDEA 14.1.7 安装激活
    pychram永久激活
    电脑的奇葩坑
    jmeter过程中的坑
    各数据库驱动连接配置
    spring定时器--时间设置规则
    linux redhat7.2下vim的安装与使用方法
    分数化小数
  • 原文地址:https://www.cnblogs.com/Laughing-Lz/p/5306812.html
Copyright © 2020-2023  润新知