递归算法-汉诺塔

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("此为第%d个盘子移动的步骤:\n",n);
printf("%c-->%c\n",a,b);
}
static int count;
hanoi(int n,char x,char y,char z)
{
if (n==1)
{
move(x,z,n);
count++;
}
else
{
hanoi(n-1,x,z,y);
printf("汉诺塔移动的总次数是%d:\n",count);
GetLocalTime(&sys2);
printf("%dm seconds passed.\n", ((sys2.wSecond-sys1.wSecond)*1000+sys2.wMilliseconds-sys1.wMilliseconds));
实验二、பைடு நூலகம்归算法
一、写出汉诺塔问题的递归算法程序。给出n=3和n=4时,圆盘的移动总次数(程序中统计)和每步移动过程。
二、源程序
#include "windows.h"
#include "conio.h"
#include "stdio.h"
move(char a,char b,int m)
{int n;n=m;
}
move(x,z,n);
count++;
hanoi(n-1,y,x,z);
}
}
main()
{
char x,y,z;
int n;count=0;
SYSTEMTIME sys1,sys2;
printf("请输入盘数:\n");
scanf("%d",&n);
GetLocalTime(&sys1);
hanoi(n,'x','y','z');
相关文档
最新文档