汉诺塔问题

有三根相邻的柱子,标号为A,B,C,

A柱子上从下到上按金字塔状叠放着n个不同大小圆盘

现在把所有盘子一个一个移动到柱子B上,

并且每次移动同一根柱子上都不能出现大盘子在小盘子上方 (如下图)


汉诺塔游戏

设N个盘子

1.把N-1个盘子 从 A柱借助 B柱移到C柱

2.把第N个盘子 移动到B柱

3.把N-1个盘子 从 C柱借助 A柱移到B柱

public static void main(String[] args) {

printHanoiTower(3, "A", "B", "C");

}

/**

*

* @param N 初始N个从小到大的盘子

* @param from 原始柱子 A

* @param to 目标柱子 B

* @param help 辅助柱子 C

*/

static void printHanoiTower(int N, String from, String to, String help) {

if(N == 1) {

System.out.println("move"+N+"from"+from+"to"+to);

return;

}

printHanoiTower(N-1, from, help, to);//N-1个盘子移动到辅助柱子上

System.out.println("move"+N+"from"+from+"to"+to);//第N个到达目标柱子

printHanoiTower(N-1, help, to, from);//N-1个盘子借助A从C移动到目标柱子

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,576评论 0 23
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,196评论 0 10
  • 超高速音视频编码器用法: ffmpeg [options] [[infile options] -i infile...
    吉凶以情迁阅读 10,168评论 0 4
  • 汉诺塔是指这个: 目标是要把所有的盘子从最左边(柱子A)移动到最右边(柱子C),条件是 1)每次只能移动一个盘子 ...
    mouse33333阅读 8,111评论 7 8
  • 最早认识荷花,还是很久远的童年时代。 偶尔一次,在本家叔伯家里,看到几只红艳粉嫩的大花,阔大的花瓣,让人忍不住想摸...
    是梅啊阅读 3,961评论 15 31

友情链接更多精彩内容