首页 > 其他分享 >汉诺塔

汉诺塔

时间:2022-12-07 22:55:35浏览次数:32  
标签:char num 汉诺塔 test 盘子 public

import java.util.Scanner;
public class Eext {
    public static void main(String[] args) {
        //汉诺塔 5个盘子 
        //将每个盘子从A挪到C 下面的盘子不能放在上面的盘子上
        T t1 = new T();
        t1.test(2 , 'A' , 'B' , 'C');
       
    }        
}

class T {
    public void test(int num , char a , char b , char c) {
        //假设只有一个盘
        if (num == 1) {
            System.out.println(a + "->" + c);
        } else {
            //如果有多个盘 可以看成两个盘,最下面和上面的所有盘 (num - 1)
            //先将a上面的所有盘移动到b ,借助c 
            test(num - 1, a , c , b);
            //再把最下面的盘子移动到c
            System.out.println(a + "----->" + c);
            //再把b塔上所有盘挪到c
            test(num - 1 , b , a , c); 
        }
    }
}

 

标签:char,num,汉诺塔,test,盘子,public
From: https://www.cnblogs.com/shuqiqi/p/16964826.html

相关文章

  • 汉诺塔问题(Hanoi)(2.0)
    大家晚上好呀,今天要给大家分享的是汉诺塔的代码,以我现在的水平实在难以解决这个汉诺塔代码的过程,毕竟我也只是一个刚入门的新手,所以我照着我老师的代码写了一遍,这个就先暂且......
  • c语言实现【汉诺塔问题】
    【汉诺塔问题】c语言实现1.问题描述汉诺塔问题是指:一块板上固定三个木杆:A、B、C。A赶上套有若干个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这些圆盘从A......
  • 汉诺塔问题及其变种问题解法(cpp版本)
    普通汉诺塔问题1.问题描述有三个柱子A、B、C,A柱子上有n个圆盘,圆盘的大小不等,大圆盘的在下,小圆盘的在上。将A柱子上的圆盘全部移动到C柱子上。每次只能移动一个圆盘,而且......
  • Java-汉诺塔问题
    //汉诺塔问题publicclassHannoi{ publicstaticvoidmain(String[]args){ Towertower=newTower(); tower.move(5,'A','B','C'); }}classTower{ //n......
  • 【PE806】Nim on Towers of Hanoi(汉诺塔游戏,生成函数)
    PE:ProjectEuler题意:汉诺塔游戏是如下的问题:有三根柱子,第一根柱子套有\(n\)个圆盘,圆盘从上往下半径递增。每次操作可以把套在某根柱子上的最上面的那个圆盘移到另一个......
  • 【程序员必会十大算法】之分治算法(汉诺塔问题)
    1.应用分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题…直到最后子问题可以简......
  • 基于FPGA的汉诺塔游戏
        汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天......
  • 汉诺塔问题分治求解
    汉诺塔问题在经典汉诺塔问题中,有3根柱子及n个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放......
  • 汉诺塔的非递归实现
    借助堆栈以非递归(循环)方式求解汉诺塔的问题(n,a,b,c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求......
  • C语言递归汉诺塔
    #include<stdio.h>intmain(){voidhanoi(intn,charone,chartwo,charthree);intm;printf("Inputthenumberofdiskes:");scanf("%d",&m);......