博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汉诺塔算法
阅读量:5377 次
发布时间:2019-06-15

本文共 658 字,大约阅读时间需要 2 分钟。

#include
void move(int n,char A,char B,char C){ if(n==1) printf("\t%c->%c\n",A,C); //当n只有1个的时候直接从A移动到C else { move(n-1,A,C,B); //第n-1个要从A通过C移动到B printf("\t%c->%c\n",A,C); move(n-1,B,A,C); //n-1个移动过来之后b变开始盘,B通过A移动到C,这边很难理解 }}main(){ int n; printf("请输入要移动的块数:"); scanf("%d",&n); move(n,'A','B','C');}

 

      参加ACM竞赛,算法是很重要的。这是我从网上收集到的算法。。。。。。我相信经过日积月累,实力一定会增强的。。。。。。

      汉诺塔的算法就3个步骤:第一,把A上的n-1个盘通过C移动到B。第二,把A上的最下面的盘移到C。第三,因为n-1个盘全在B上了,所以把B当做A重复以上步骤就好了。所以算

法看起来就简单多了。不过,思考过程还是很痛苦的,难以理解。递归中会保存数据的好处在这里又得到体现,太神奇了。

转载于:https://www.cnblogs.com/lovewzh/archive/2013/04/22/3036574.html

你可能感兴趣的文章
总结,团队贡献分,用户调研
查看>>
使用指针来实现变长数组(VLA)
查看>>
Nginx 链接
查看>>
POJ2533(KB12-N LIS)
查看>>
ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?
查看>>
DNS
查看>>
Linux操作系统服务器学习笔记一
查看>>
SAP B1 9.1 获取当前操作者的id
查看>>
算法 - 堆栈类和嵌套循环实例运用
查看>>
级联下拉列表
查看>>
Notepad++ 连接远程 FTP 进行文件编辑
查看>>
构建之法阅读笔记03
查看>>
马士兵老师hadoop讲解总结博客地址记录(啊啊啊啊啊,自己没有保存写好的博客...)...
查看>>
No configuration found for the specified action解决办法
查看>>
四种常用FPGA/CPLD设计思想技巧
查看>>
Android使用代码消除App数据并重新启动设备
查看>>
指向“”的 script 加载失败
查看>>
[PTA] 数据结构与算法题目集 6-12 二叉搜索树的操作集
查看>>
AngularJS学习篇(十五)
查看>>
【转】Java中Synchronized的用法
查看>>