关注
汉诺塔问题跟树的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);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
点赞
相关推荐
查看16道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
04-03 22:41
兰州大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 这个offer值得去吗? #
6900次浏览 100人参与
# 我与AI的日常 #
4894次浏览 46人参与
# 联宝杯大学生创新大赛,你的技术值得产业级答案 #
44469次浏览 506人参与
# 如果春招能重来,我会___ #
9912次浏览 117人参与
# 大厂还是考编 #
132928次浏览 1376人参与
# 你会因为行情,降低找工作标准吗? #
17513次浏览 179人参与
# 想做Agent可以做哪些岗位? #
6483次浏览 145人参与
# 面试官拷打AI项目都会问什么? #
5700次浏览 229人参与
# 你实习是赚钱了还是亏钱了? #
122842次浏览 692人参与
# 实习,不懂就问 #
213981次浏览 1705人参与
# 你觉得最好用的AI编程工具是_ #
2225次浏览 46人参与
# 携程求职进展汇总 #
957305次浏览 6237人参与
# 除了线上,还能去哪些地方投简历 #
5693次浏览 63人参与
# 实习想申请秋招offer,能不能argue薪资 #
259119次浏览 1362人参与
# 你和你的mentor相处模式是__ #
10261次浏览 82人参与
# 机械制造公司求职体验 #
141875次浏览 386人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
193268次浏览 1367人参与
# 实习第一天,你在干什么 #
6415次浏览 51人参与
# 你最满意的offer薪资是哪家公司? #
81766次浏览 387人参与
# 你的实习什么时候入职 #
377835次浏览 2400人参与
# 说说公考那些事儿 #
23708次浏览 81人参与