文本区域换符号
汉诺塔问题
当圆盘数量n=1时,直接将圆盘从塔座A移动到塔座B上;
当圆盘数量n>1时,想办法将n-1个圆盘移动到B再将A上最大的圆盘移动到C,最后设法将n-1个较小的圆盘移动到C。
这里测试汉诺塔问题的用时用clock()来记录开始于结束时间并作减。
#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=3,start,finish;
start=clock();
hanoi(N,'a','b','c');
finish=clock();
printf("用时:%dms\n",finish-start);
return 0;
}