汉诺塔-java实现(递归的应用场景)

    xiaoxiao2023-11-18  145

    汉诺塔 --java实现-递归的应用场景

    ***一切解释尽在代码中,尽情享受吧

    public class TestHanoi { public static void main(String[] args) { System.out.println("A B C"); System.out.println("汉诺塔的移动顺序:"); hanoi(2,'A', 'B', 'C'); } /* * n 代表共有N个盘子 * from 开始的柱子 * middle 中间的柱子 * to 目标柱子 * 规则:n=1时,就是直接从from 到to * n>=2时,都认为只有两个,上面的所有盘子和下面一个盘子 */ public static void hanoi(int n,char from,char middle,char to) { //n=1 if(n==1) { System.out.println("第1个盘子从"+from+"移到"+to); //n>=2 }else { //移动上面的所有盘子到中间位置 //因为想要将上面所有的盘子移到中间来,所以middle参数就与参数to调换位置 hanoi(n-1, from, to, middle); //移动下面的盘子 System.out.println("第"+n+"个盘子从"+from+"移到"+to); //把上面的所有盘子从中间的位置移到目标位置 hanoi(n-1, middle, from, to); } } }

     

    最新回复(0)