汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。

大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。

大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。

并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。

问应该如何操作?

package com.test;
import java.util.Scanner;
public class Test {//主方法public static void main(String[] args){Scanner in = new Scanner(System.in);System.out.println("请输入汉诺塔的层数:");int n = in.nextInt();  //接收一个正整数hanoi(n,'A','B','C');  //调用汉诺塔方法}//汉诺塔方法public static void hanoi(int n,char x,char y,char z){System.out.println("移动结果:");if (n == 1){move(x,z);  //将x上的盘子移到z上}else{hanoi(n - 1,x,z,y);  //将n-1个盘子借助z,从x移到y上move(x,z);  //将x上的盘子移到z上hanoi(n - 1,y,x,z);  //将n-1个盘子借助x,从y移到z上}}//移动方法public static void move(char x,char y){System.out.println(x+"->"+y);}
}

求解汉诺塔问题(提示, 使用递归)相关推荐

  1. java实现求解汉诺塔问题(提示, 使用递归)

    实现代码: 求解汉诺塔问题(提示, 使用递归) 汉诺塔问题是一个经典的问题.汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从 ...

  2. Py:递归求解汉诺塔,简单的几行编程可以搞定很高层的三柱汉诺塔游戏

    Py:递归求解汉诺塔,简单的几行编程可以搞定很高层的三柱汉诺塔游戏 目录 输出结果 核心代码 输出结果 核心代码 def hanoi(n,x,y,z):if n==1:print(x,'--→',z) ...

  3. Java 通过递归求解汉诺塔问题 源码 经典递归问题讲解

    汉诺塔问题描述:有三根柱子 A.B.C ,在A从下向上按照从大到小的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上.移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的盘子. 分析:为 ...

  4. C语言——生存期和存储类型、递归、递归求解汉诺塔、快速排序

    目录 一.生存期和存储类型 1.生存期 2.存储类型 3.自动变量(auto) 4.寄存器变量(register) 5.静态局部变量(static) 6.static 和 extern 二.递归 1. ...

  5. 栈和队列----用栈求解汉诺塔问题

    用栈求解汉诺塔问题 汉诺塔问题比较经典,现在修改一下汉诺塔游戏的规则:规定不能直接从左移动到右,也不能直接从右移动到左,必须经过中柱,求解当塔有N层的时候,打印最优移动过程和最优移动总步数. 可以采用 ...

  6. 【汉诺塔】C语言递归解法,深层次地带你理解汉诺塔公式

    目录 汉诺塔公式 汉诺塔问题在数学层面的公式: C语言递归公式 两层汉诺塔 三层汉诺塔 递归问题可谓是学习C语言以来的第一个拦路虎,而汉诺塔问题更是递归中对新手很不友好的一道经典题,我们接下来从公式角 ...

  7. python汉诺塔游戏_python求解汉诺塔游戏

    本文实例为大家分享了python求解汉诺塔游戏的具体代码,供大家参考,具体内容如下 一.问题定义 百度百科定义:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.据说大梵天创造世界的时候做了三 ...

  8. 用栈来求解汉诺塔变形问题

    package stackAndQueue;import java.util.Stack;/*** 用栈来求解汉诺塔问题:HanoiStack[3]* * [问题描述]:将汉诺塔游戏(小压大)规则修改 ...

  9. 经典汉诺塔(Java初学递归篇)

    大一学C的时候已经接触到汉诺塔递归的问题,当时只是简单了解过方法,最近开了算法课,打算重新捋一捋. 题目描述:         有三根柱子分别为A.B.C,柱子A上从下到上按金字塔状叠放着n个不同大小 ...

  10. 借汉诺塔理解栈与递归

    我们先说,在一个函数中,调用另一个函数. 首先,要意识到,函数中的代码和平常所写代码一样,也都是要执行完的,只有执行完代码,或者遇到return,才会停止. 那么,我们在函数中调用函数,执行完了,就会 ...

最新文章

  1. 搜索引擎大调整:百度出“惊雷算法”后360搜索又将上线“八戒算法”
  2. 14.8.4 Moving or Copying InnoDB Tables to Another Machine 移动或者拷贝 InnoDB 表到另外机器...
  3. PKI/CA (2)核心说明
  4. NETINT刘伟:ASIC才是未来
  5. 电脑上交计算机作业怎么打开,上海交大计算机第一次作业-20210711011739.docx-原创力文档...
  6. 计算机硬盘共享配额,Win10磁盘配额是什么,怎么用?
  7. iOS开发之复制字符串到剪贴板
  8. 95-872-060-源码-CEP-匹配事件提取
  9. php 批量改文件名后缀名_PHP 批量修改文件后缀名
  10. tensorflow分布式运行
  11. HDOJ--1106排序
  12. 趣闻|论文不必参考任何文献?看到作者,网友大呼失敬了
  13. stm32串口传输数据第一个数据被吞_STM32串口发送第一个字符丢失解决之道
  14. 乐优商城个人笔记上-主要框架、基础知识、管理系统代码
  15. matlab2014a如何画电机效率云图,maxwell电机转矩扫描与使用MTPA策略绘制效率map图...
  16. 小鸟壁纸 删除 卸载 流氓 鲁大师 360 软件 弹窗 后台
  17. 20201228攻防世界WEB模块入门级别全详解通关记录
  18. 11发布自己的镜像(阿里云)
  19. html多行注释如何实现,javascript多行注释如何实现
  20. Fortinet :《2021 年OT与网络安全现状报告》之「OT安全洞察」

热门文章

  1. [路由器] k2p支持ipv6相关设置
  2. python scratch ev3_如何在scratch上连接乐高ev3?
  3. python阈值分割_Python实现otsu阈值分割算法
  4. dnastar拼接反向互补序列_DNAstar 教程
  5. MFC 获取窗口句柄
  6. 大话数据结构4 - 初识单链表
  7. bp神经网络模型的优缺点,bp神经网络缺点及克服
  8. 无线传输wireless
  9. 手动修改美化7zip图标 - 附替换文件
  10. 刀片服务器接显示器,刀片服务器的vga切换方法