package com.guigu.algorithm.dacAlgorithm;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
/**
* @author: guorui fu
* @versiion: 1.0
* num奇数从A->C开始 偶数从A->B开始
*/
public class Hanoitower {
public static void main(String[] args) {
hanoiTower(6,'A','B','C');
}
//汉诺塔 使用分治算法
public static void hanoiTower(int num,char a,char b,char c){
//如果只有一个盘
if (num == 1){
System.out.println("第1个盘从" + a + "->" + c);
}else {
//1.先把最上面的盘全部移动到B盘
hanoiTower(num - 1,a,c,b);
//2.在把最下面的盘移动到C盘
System.out.println("第" + num + "个盘从" + a + "->" + c);
//3.在将B盘所有移动到C盘
hanoiTower(num-1,b,a,c);
}
}
}
[算法] 分治算法解决汉诺塔
最新推荐文章于 2024-06-16 20:54:56 发布