#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void hanoi(int ,char ,char ,char );
void moveTo(int ,char ,char );
/*
<span style="white-space:pre"> </span>hanoi 递归程序
<span style="white-space:pre"> </span>n 层数 fr 原点 by 中间点 to 目标点
*/
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);
}
void moveTo(int n,char fr,char to )
{
printf("\n move %d from %c to %c",n, fr,to);
}
void main()
{
char a,b,c;
hanoi(4,'a','b','c');
system("pause");
}