汉诺塔
#include<stdio.h>
#include<time.h>
void hanoi(int n,char a,char b,char c)//汉诺塔
{//把n个盘子从a柱移动到c柱
if(n>0)
{
hanoi(n-1,a,c,b);
printf("%c->%c\n",a,c);
hanoi(n-1,b,a,c);
}
}
int main()
{
int N=5,start,finish;
start=clock();
hanoi(N,'a','b','c');
finish=clock();
printf("用时:%dms\n",finish-start);
return 0;
}
算法思想:
(1)先把n-1个盘从A放到B;
(2)把最底下的盘从A放到C;
(3)把那n-1个盘从B放到C。