汉诺塔算法代码实现

网友投稿 594 2022-05-28

package com.aaa.recursion;

public class Hanoi {

public static void main(String[] args) {

long start=System.currentTimeMillis();

move(20,"A","B","C");

long end=System.currentTimeMillis();

System.out.println("汉诺塔时间:");

System.out.println((end-start)/1000+"秒");

}

/**

* 最开始:B中介->C中介-->A中介;不断递归调用;

汉诺塔算法代码实现

* @param dish 盘子个数

* @param from 初始塔座

* @param temp 中介塔座

* @param to 目标塔座

*/

private static void move(int dish, String from, String temp,String to) {

if(dish==1)

System.out.println("\t\t将盘子"+dish+"从塔座"+from+"移动到"+to);

else{

//超过1的时候,递归调用方法本身;A为初始目标,B为目标,C:中介

move(dish-1,from,to,temp);

System.out.println("将盘子"+dish+"从塔座"+from+"移动到"+to);

//继续移动:A为中介,B初始塔座,C:目标;

move(dish-1,temp,from,to);

}

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle 开启归档模式
下一篇:【愚公系列】2021年12月 网络工程-NTFS安全权限
相关文章