#include<stdio.h>
void hanoi(int,char,char,char);
void moveto(int,char,char);
int main()
{
hanoi(4,'A','B','C');
}
void hanoi(int n,char fr,char to,char by)
{
if(n<=0) return;
if(n==1)
{
moveto(n,fr,to);
return;
}
hanoi(n-1,fr,by,to);/*这一步是从众多例子中间总结出来的*/
moveto(n,fr,to);/*这一步必须跟上面一步不一样,所以必须是要选择另一个*/
hanoi(n-1,by,to,fr);/*这一步是先根据n=2时推到出来的公式,然后检验后面的验证为正确*/
}
void moveto(int n,char fr,char to)
{
printf("/nmove %d from %c to %c",n,fr,to);
}
这是自己理解后编写的一段算法,拿出来晒晒啊!最近正在学习数据结构,刚刚觉得有点入门了,嘿嘿