关注
汉诺塔问题跟树的LDR遍历一个道理 1.对于单个情形,也就是最大的圆盘的情形,直接从A移动到C,因此直接打印移动的方法即可,并且返回 2.对于两个圆盘的情形,分为三步进行: (1)从A移动到B一个 (2)从A移动到C一个 (3)将B中暂存的移动到C 因此跟BST的递归LDR遍历非常像,此时我们的调用打印应该为三步: (1)打印A-B (2)打印A-C (3)打印B-C 因此我的递归为: hanoi(n-1,A,C,B);
printf当前A-C;
hanoi(n-1,B,A,C); void hanoi(int n,char A,char B,char C){
if(n<=1){
printf("1 move %c to %c\n",A,C);
return;
}
hanoi(n-1,A,C,B);
printf("%d move %c to %c\n",n,A,C);
hanoi(n-1,B,A,C);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
点赞
相关推荐
点赞 评论 收藏
分享
01-16 11:50
浙江工商大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 今年春招是金一银二嘛? #
20472次浏览 217人参与
# 总结:哪家公司面试体验感最好 #
79165次浏览 443人参与
# 没关系,至少我的__很曼妙 #
8833次浏览 141人参与
# 你是怎么和mt相处的? #
89742次浏览 459人参与
# 赚钱的意义在这一刻具象化 #
9197次浏览 197人参与
# 来聊聊你目前的求职进展 #
717575次浏览 6986人参与
# 比亚迪工作体验 #
80042次浏览 293人参与
# AI求职实录 #
12492次浏览 333人参与
# 快手年终开大包 #
2947次浏览 46人参与
# 抛开难度不谈,你最想去哪家公司? #
11273次浏览 195人参与
# 考研人,我有话说 #
163449次浏览 1240人参与
# 1月小结:你过的开心吗? #
3921次浏览 78人参与
# 为什么有人零实习也能进大厂? #
10706次浏览 208人参与
# 你的第一家实习公司是什么档次? #
9249次浏览 114人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
13300次浏览 336人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
6875次浏览 216人参与
# 牛客吐槽大会 #
7720次浏览 126人参与
# 你的landing期是如何度过的? #
13324次浏览 259人参与
# 实习最想跑路的瞬间 #
112383次浏览 689人参与
# 除了Java,最推荐学什么技术? #
11512次浏览 225人参与
查看10道真题和解析