本文共 929 字,大约阅读时间需要 3 分钟。
递归原理,所有的盘子永远只分为两部分:最下边的盘子和上边的盘子。
package per.zhangyh.algorithm.hannuota;/** *@author:zhangyonghui; *@date: 2021/6/20; 15:19 *@Describe:汉诺塔问题 */public class HanNuoTa1 { public static void main(String[] args) { hannuota(4, "左边托盘", "中间托盘", "右边托盘"); } /** * @param n:一共有几个盘子 * @param from:一开始的托盘 * @param middle:中间的托盘 * @param to:目标托盘 * 思想:递归原理,所有的盘子永远只分为两部分:最下边的盘子和上边的盘子 */ public static void hannuota(int n, String from, String middle, String to) { //当只有一个盘子的时候: if (n == 1) { System.out.println("将第 "+n+" 个盘子从 " + from + " 移动到 " + to); } //当有多个盘子的时候: else { //1,先将上边的盘子移动到中间位置: hannuota(n - 1, from, to, middle); //2,再将最下边的那个盘子移动到右边位置: System.out.println("将第 " + n + " 个盘子从 " + from + " 移动到 " + to); //3,再将上边的盘子从中间位置移动到右边位置: hannuota(n - 1, middle, from, to); } }}
转载地址:http://qytzi.baihongyu.com/