java递归问题——汉诺塔
创始人
2024-05-19 15:33:32
0

目录

🌲🌲什么是汉诺塔?

 🐰 当只有1个圆盘的时候:

 🐰 当只有2个圆盘的时候:

 🐰 当只有3个圆盘的时候:

🌲🌲汉诺塔代码

🐰思路

🐰代码


🌲🌲什么是汉诺塔?

汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大焚天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

 🐰 当只有1个圆盘的时候:

A->C 只需要移动1次;

 🐰 当只有2个圆盘的时候:

A->B,A->C,B-C 需要移动3次;

 🐰 当只有3个圆盘的时候:

 A -> C, A -> B ,  C -> B , C -> A , B -> A , C -> B , A -> C 需要7次;

发现规律:

只有1片圆盘的时候,1次,2的1次方减1;

当有2片圆盘的时候,3次,2的2次方减1;

当有3片圆盘的时候,7次,2的3次方减1;

那么当有n片圆盘的时候,移动的总次数sum=2^n -1;

🌲🌲汉诺塔代码

🐰思路

pos1,pos2,pos3不是固定的。

我有3个圆盘时,第一步:我需要将上面两个盘子通过C移动到B,移动几次我不管,反正就是借助C移动到B,那么B就是目标位置,C就是中转位置;

第二步:需要将A移动到C;

第三步:我需要把第二大的圆盘(在B上),通过A移动到C上,那么B就是初始位置,A就是中转位置,C就是目标位置。

以此类推

当我有n个圆盘时,第一步,我需要将n-1个盘通过C移动到B,移动几次我不管。

第二部,将A上的一个盘移动到C;

第三步:需要把第n-1个盘通过A移动到C上,B就是初始位置,A就是中转位置,C就是目标位置。

循环往复,直到n-1等于1时便可终止递归

🐰代码

    //汉诺塔//pos1:初始位置//pos2:中转位置//pos3:目标位置//n是有几个片
public static void Hanoi(int n,char pos1,char pos2,char pos3) {if(n==1){move(pos1,pos3);return;}Hanoi(n-1,pos1,pos3,pos2);move(pos1, pos3);Hanoi(n-1,pos2,pos1,pos3);
}public static void main7(String[] args) {Hanoi(3,'A','B','C');}public static void move(char pos1,char pos3){System.out.println(pos1+"->"+pos3);
}

相关内容

热门资讯

济南九顶塔景区导游词 济南九顶塔景区导游词  篇一:济南九顶塔景区导游词  九顶塔民族风情园位于历城区柳埠镇,距济南市区公...
桂林山水的导游词 桂林山水的导游词(通用14篇)  作为一位杰出的导游,有必要进行细致的导游词准备工作,导游词是我们引...
广西榕湖、杉湖导游词-广西导... 广西榕湖、杉湖导游词-广西导游词  作为一无名无私奉献的导游,有必要进行细致的导游词准备工作,导游词...
天津海河外滩公园的导游词 天津海河外滩公园的导游词范文  各位好,现在我们要去的是海河外滩公园,海河外滩公园是天津市海河开发中...
洞头导游词 洞头导游词  各位团友,现在我先向大家介绍一下南麂列岛的概况。南麂列岛位于浙江省平阳县东南海面上,由...
江门开平碉楼导游词讲解 江门开平碉楼导游词讲解  各位游客大家好,今天我们去游览广东省江门市的开平碉楼。“楼”相信大家都看过...
西安钟鼓楼导游词 西安钟鼓楼导游词  作为一名可信赖的导游人员,就难以避免地要准备导游词,一篇完整的导游词,其结构一般...
苏州狮子林导游词 苏州狮子林导游词  女士们,先生们,下午好,首先我代表苏州姑苏旅行社热烈欢迎大家的到来,很高兴有这样...
武隆天生三桥导游词 武隆天生三桥导游词范文  重庆武隆天生三桥风景区位于重庆市的武隆区城区东南20千米处,武隆至仙女山高...
长城导游词四年级作文 长城导游词四年级作文  作为一名导游,通常需要准备好一份导游词,导游词由引言、主体和结语三部分构成。...
介绍贵州导游词 介绍贵州导游词  作为一名导游,往往需要进行导游词编写工作,导游词可以帮助旅游者欣赏景观,以达到游览...
记金华的双龙洞导游词 记金华的双龙洞导游词  作为一名导游,有必要进行细致的导游词准备工作,导游词是导游员进行实地口语导游...
南京夫子庙的导游词 南京夫子庙的导游词  导语:南京夫子庙,即南京孔庙、南京文庙,位于南京市秦淮区秦淮河北岸贡院街。下面...
重庆北温泉公园简介导游词 重庆北温泉公园简介导游词  北温泉公园位于北碚区,北濒嘉陵江,南倚缙云山。其前身为温泉寺,初建于南朝...
北山公园的导游词 关于北山公园的导游词  吉林北山地理位置在吉林城区西北,面积是一百二十八万平方米,主峰西峰海拔高度为...
美丽的校园导游词 美丽的校园导游词(精选3篇)  作为一名导游,总不可避免地需要编写导游词,导游词是我们引导游览时使用...
白帝城导游词 白帝城导游词  各位朋友们:  大家好!大家辛苦了!首先请允许我代表我们朝阳旅行社欢迎各位朋友来本地...
新昌大佛寺导游词 新昌大佛寺导游词  大佛寺,又名大佛禅寺,位于浙江省新昌县城南明街道,始建于东晋。下面是小编为大家整...
骊山导游词介绍 骊山导游词介绍  骊山是我国古今驰名的风景游览胜地,因系西周时骊戎国国地,因此称为骊山,唐时临潼名昭...
江苏扬州个园导游词 江苏扬州个园导游词  个园位于扬州古城东北隅,盐阜东路10号,曾荣获第三批“全国重点文物保护单位”和...