栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Java实现算法应用--汉诺塔 主要内容:古代有一个梵塔,塔内有3个座,即A、B、C,开始时A座上有64个盘子,盘子的大小不等,大的在下面,小的在上面。有一个老和尚想把这64个盘子从A座

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现算法应用--汉诺塔 主要内容:古代有一个梵塔,塔内有3个座,即A、B、C,开始时A座上有64个盘子,盘子的大小不等,大的在下面,小的在上面。有一个老和尚想把这64个盘子从A座

Java实现算法应用–汉诺塔

  • 主要内容:古代有一个梵塔,塔内有3个座,即A、B、C,开始时A座上有64个盘子,
  • 盘子的大小不等,大的在下面,小的在上面。有一个老和尚想把这64个盘子从A座移到
  • C座,但每次只允许移动一个盘子,且在移动过程中3个座上的都要保持大盘子在下面,
  • 小盘子在上面。

    具体代码如下:
package package6;

import java.util.Scanner;


public class Hanoi {

	private static void move(char x,char y) {
		System.out.printf("%c-->%c", x,y);
		System.out.print("n");
	}
	
	//将n个盘子从第一座借助第二座移到第三座
	private static void hanoit(int n,char one,char two,char three) {
		if(n==1) {//如果只有一个盘子
			move(one,three);
		}else {
			hanoit(n-1, one, three, two);//将一上的盘子借助三移到二上
			move(one, three);
			hanoit(n-1, two, one, three);//将二上的盘子借助一移到三上
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int m;
		System.out.println("请输入你要移动的盘子数:");
		Scanner s=new Scanner(System.in);
		m=s.nextInt();
		System.out.println("移动"+m+"个盘子的步骤如下:");
		hanoit(m, 'A', 'B', 'C');
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号