hanoi塔java_Java实现hanoi塔
学习数据结构绕不过会遇到汉诺塔的问题,这个也比较经典,问题我也不详细描述了。
简单来说三根木桩,初始状态下一根木桩上叠放着n个盘子,大盘在下小盘在上,任你操作,把这些盘子移动到第三根木桩,当然会有限制条件,限制条件如下:
1.每次只能移动最上面的一个盘子
2.移动过程中小盘子必须放在大盘子上面
其实编程实现的话就是递归的思想,比较典型的递归实例,所以基本各个书都会提到。
下面直接看代码吧import java.io.*;
import java.util.Scanner;
public class CH04_04 {
public static void main(String[] args) throws IOException {
Scanner input=new Scanner(System.in);
System.out.print("请输入盘子数量: ");
String str=input.nextLine();
int i=Integer.parseInt(str);
System.out.println("移动步骤如下: ");
hanoi(i,'A','B','C');
}
/*将n个盘子从柱子A经柱子B移动到柱子C*/
public static void hanoi(int n,char A,char B,char C) {
if(n==1) {
System.out.println("盘子从 "+A+" 移到 "+C);
}
else {
hanoi(n-1,A,C,B);
System.out.println("盘子从 "+A+" 移到 "+C);
hanoi(n-1,B,A,C);
}
}
}
输入n=3,结果如下
hanoi塔java_Java实现hanoi塔相关推荐
- hanoi塔(汉诺塔)--C语言
hanoi塔(汉诺塔)–C语言 一.什么是hanoi塔 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄 ...
- 河内之塔java_java优秀算法河内之塔_河内塔的Java程序
java优秀算法河内之塔 Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objec ...
- 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
import java.math.BigInteger; /* * 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序 ...
- 【汉诺塔】汉诺塔问题
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘 ...
- C语言递归算法——汉诺塔问题(河内塔)
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘 ...
- 汉诺塔+汉诺四塔(C/C++)
目录 汉诺塔 1 简介 2 代码思路 2.1 对于次数的理解 2.2 对于移动的理解 3 代码 4 加深理解 汉诺四塔 1 思路 2 代码 汉诺塔 1 简介 汉诺塔(Tower of ...
- C++汉诺塔问题(河内塔)
C++汉诺塔问题(河内塔) 这是一个非常经典的递归问题. 递归:在函数内部又再次调用函数自身的问题 假设有n个盘子,需要把这些盘子从第一根起始柱A移动到第三根目标柱C中. 1.首先需要把n-1个盘子移 ...
- 汉诺塔(又称河内塔)
汉若塔 说明 解法 代码区 说明 说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法 ...
- 汉诺塔II|汉诺塔4柱
汉诺塔II|汉诺塔4柱 Problem Description 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根 ...
最新文章
- 关于linux内存管理
- php代码怎么复制_PHP_PHP网站备份程序代码分享,效果图:PHP代码 复制代码 代码 - phpStudy...
- 播放图像有锯齿_反隔行操作
- Spring学习6之自动装配Bean02
- 英媒:滴滴和优步每年烧钱64亿
- ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
- HTML DOM教程 47-JavaScript Date 对象
- js 字符串插入_前端利器React,为什么推荐JSX来替换JS
- 【转】精华!图解局域网共享设置步骤 - 李小虎
- windows 2008 安装 apache + mysql + php
- 对超级计算机的认识有关论文,计算机科与技术专业的认识与思考.docx
- vue一个页面用两个以上页面 时时刷新
- microsoft ppt制作小技巧
- 根据自己的词汇量阅读英语原著
- 1.Requests库
- 从零搭建Spring Boot脚手架:手写Mybatis通用Mapper4
- vue之vue的生命周期、swiper、自定义组件的封装、自定义指令、过滤器、单文件组件及vue-cli
- stm32f4xx标准外设固件库
- 原来开车和写博客是很相似的心理变化过程
- 2020年双十一销售额破亿的新品牌达16个与往年三倍之多