本文主要是介绍汉诺塔问题的java递归实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import java.util.Scanner;public class Hanoi {int count=0;public void hanoi(int n,char A,char B,char C){ //把n个盘子移动到ccount++;if(n==1){System.out.println("盘子1从"+A+"移动到"+C); //再把最下边那个最大的盘子移到目标柱c上}else{hanoi(n-1,A,C,B); //先把最大的那个盘子上边的n-1个盘子移到空柱子B上System.out.println("盘子"+n+"从"+A+"移动到"+C);hanoi(n-1,B,A,C); //最后把n-1个盘子从B移到C }}public static void main(String[] args) {Hanoi h=new Hanoi();Scanner sc=new Scanner(System.in);int c=sc.nextInt();h.hanoi(c,'A','B','C');System.out.println(c+"个盘子共需移动"+h.count+"次");}}
这篇关于汉诺塔问题的java递归实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!