hanoi 塔问题_Hanoi塔

hanoi 塔问题_Hanoi塔importjava.util.Scanner;/* *汉罗塔问题 */publicclassHanoiExec{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSystem.out.println(“请输入盘子数n”);Scanner

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
import java.util.Scanner;

/*

 * 汉罗塔问题

 */

public class HanoiExec {


public static void main(String[] args) {


// TODO Auto-generated method stub


System.out.println(“请输入盘子数n”);


Scanner sn=new Scanner(System.in);


int n=sn.nextInt();


HanoiExec hanoi=new HanoiExec();


System.out.println(“The steps to move ” +n+” disks:”);


hanoi.hanoi(n, ‘A’, ‘B’, ‘C’);


System.out.println(n+”个盘子最少需要移动”+(Math.pow(2,n)-1)+”次。”);


}





public void hanoi(int n,char one ,char two,char three){


if(n==1){


this.move(one, three);


}else{


//分三步:


//1、借助第三个柱子把第一个柱子的n-1个盘子移动到第二个柱子上


//2、把第一个柱子上的第n个盘子从第一个柱子移动最终的第三个柱子上


//3、借助第一个柱子把第二个柱子的n-1个盘子移动到第三个柱子


this.hanoi(n-1,one,three,two);


this.move(one ,three);


this.hanoi(n-1, two, one, three);


}





}


public void move(char x,char y){


System.out.println(x+”–>”+y);


}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号