*作者:张栋
*完成时间:2015年9月11日
*问题:经典的汉诺塔问题
*文件1中代码:
#include <stdio.h>
#define discCount 4
long move(int, char, char,char);
*文件2中的代码:
#include "7.h"
long move(int n, char A, char B,char C)
{
long c1,c2;
if(n==1)
return 1;
else
{
c1=move(n-1,A,C,B);
c2=move(n-1,B,A,C);
return c1+c2+1;
}
}
*文件3中的代码:
#include "7.h"
int main()
{
long count;
count=move(discCount,'A','B','C');
printf("%d个盘子需要移动%ld次\n", discCount, count);
return 0;
}
*运行结果:
*知识点总结及心得:
汉诺塔是一个经典的递归问题,这次程序的编写自己加深了对递归这一知识的理解,然后我自己有使用了上一节的多文件的编写方式,让自己又熟练地掌握了多文件的使用。