关注
汉诺塔问题跟树的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);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
点赞
相关推荐
牛客热帖
更多
正在热议
更多
# 校招生月薪1W算什么水平 #
33226次浏览 187人参与
# 哪一瞬间觉得自己长大了 #
38088次浏览 493人参与
# “vivo”个offer #
38475次浏览 280人参与
# 我是面试官,请用一句话让我破防 #
26172次浏览 128人参与
# vivo工作体验 #
27771次浏览 124人参与
# 如果上班像打游戏,你最想解锁什么技能 #
7985次浏览 70人参与
# 工作后明白的那些道理 #
21580次浏览 225人参与
# 一人一个landing小技巧 #
123708次浏览 1441人参与
# 实习最想跑路的瞬间 #
87301次浏览 542人参与
# 中美关税战对我们有哪些影响 #
42743次浏览 361人参与
# 机械制造2023笔面经 #
149408次浏览 840人参与
# 中美关系回暖,你会选择出海吗? #
6429次浏览 107人参与
# 如果重来一次你还会读研吗 #
201444次浏览 1932人参与
# AI时代,哪些岗位最容易被淘汰 #
3209次浏览 27人参与
# i人适合做什么工作 #
11209次浏览 97人参与
# 华为保温 #
107329次浏览 406人参与
# 哪些行业值得去? #
5197次浏览 50人参与
# 读研or工作,哪个性价比更高? #
78086次浏览 768人参与
# 美团开奖 #
220500次浏览 1140人参与
# 如果秋招能重来,我会____ #
36996次浏览 298人参与
# 国央企笔面经互助 #
161682次浏览 1183人参与
查看14道真题和解析
老板电器公司氛围 197人发布