第二周汉诺塔问题

来源:互联网 发布:淘宝是不是搜索引擎 编辑:程序博客网 时间:2024/06/16 00:21

*作者:张栋

*完成时间:2015年9月11日

*问题:经典的汉诺塔问题

*文件1中代码:

#include <stdio.h>#define discCount 4long 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;}


*运行结果:

*知识点总结及心得:

  汉诺塔是一个经典的递归问题,这次程序的编写自己加深了对递归这一知识的理解,然后我自己有使用了上一节的多文件的编写方式,让自己又熟练地掌握了多文件的使用。

0 0
原创粉丝点击