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);


}

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • HTML、CSS、JavaScript学习总结

    HTML、CSS、JavaScript学习总结学习总结HTML网站开发的主要原则是:– 用标签元素HTML描述网页的内容结构;– 用CSS描述网页的排版布局;– 用JavaScript描述网页的事件处理,即鼠标或键盘在网页元素上的动作后的程序HTML(Hyper Text Mark-up Language 超文本标记语言)的缩写,是最基础的网页语言 。 Html是通过标签来定义的语言,代码都是由标签所组成 。Htm

  • Hadoop框架:DataNode工作机制详解

    Hadoop框架:DataNode工作机制详解

    2020年11月20日
  • java中的stringbuffer是什么_java中&和&&的区别

    java中的stringbuffer是什么_java中&和&&的区别JAVA提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了不可改变的字符串。而这个StringBuffer类提供的字符串可以进行修改。String:为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

  • oracle截取字符添加数据库,oracle截取字符串前几位的方法_数据库[通俗易懂]

    oracle截取字符添加数据库,oracle截取字符串前几位的方法_数据库[通俗易懂]数据库关系的6个性质_数据库数据库关系的6个性质:1、每一列中的分量为同一类型的数据,来自同一个域;2、不同的列可出自同一个域;3、列的次序可以任意交换;4、任意两个元组不能完全相同;5、行的次序可以任意交换;6、每一个分量都必须是不可分的数据库。oracle截取字符串前几位的方法Oracle提前某数据的前几位用substr函数。如test表中数据如下:现要提取dept字段中的前两位,可用如下…

    2022年10月22日
  • C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」

    C / C++ 保留两位小数(setprecision(n)的一些用法总结)「建议收藏」  做题遇到保留两位小数的题目,课本上写的又多又杂,网上查来的也是一堆内容需要筛选,눈_눈还是自己总结一下吧。  首先说C++代码#include<iomanip>//不要忘了头文件//第一种写法cout<<setiosflags(ios::fi

  • php 生成订单号201807205598981

    php 生成订单号201807205598981

发表回复

您的电子邮箱地址不会被公开。

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