关注
汉诺塔问题跟树的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);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
点赞
相关推荐
10-27 15:27
南京航空航天大学 嵌入式硬件工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 校招生月薪1W算什么水平 #
37285次浏览 205人参与
# 一人一个landing小技巧 #
124508次浏览 1447人参与
# “vivo”个offer #
39833次浏览 282人参与
# 如果上班像打游戏,你最想解锁什么技能 #
8976次浏览 73人参与
# 我和mentor的爱恨情仇 #
77012次浏览 426人参与
# 为了实习逃课值吗? #
30147次浏览 276人参与
# 哪一瞬间觉得自己长大了 #
38836次浏览 493人参与
# 工作后明白的那些道理 #
22324次浏览 225人参与
# 我是面试官,请用一句话让我破防 #
27658次浏览 130人参与
# vivo工作体验 #
28480次浏览 124人参与
# 实习吐槽大会 #
385973次浏览 2156人参与
# 中美关税战对我们有哪些影响 #
43876次浏览 366人参与
# 中美关系回暖,你会选择出海吗? #
7584次浏览 112人参与
# 哪些行业值得去? #
6006次浏览 51人参与
# 你见过哪些工贼行为 #
24995次浏览 125人参与
# 华为保温 #
108501次浏览 408人参与
# 读研or工作,哪个性价比更高? #
78893次浏览 769人参与
# 和mentor 1on1 都聊什么? #
1266次浏览 18人参与
# i人适合做什么工作 #
12231次浏览 100人参与
# 美团开奖 #
226523次浏览 1158人参与
# AI时代,哪些岗位最容易被淘汰 #
3904次浏览 27人参与