第二周项目3(2)-汉诺塔

来源:互联网 发布:布吕歇尔 知乎 编辑:程序博客网 时间:2024/06/06 06:32

问题描述:

/*    *Copyright (c) 2015 烟台大学计算机与控制工程学院   *All right reserved.   *文件名称:hannuota.cpp   *writer:肖博文  *date:2016年9月8日   *版本:V1.0.1    *问题描述:体验复杂度为O(2^n)的函数的运算时间   *输入描述:输入盘子的数目   *程序输出:输出移动盘子的次数以及函数运行的时间 */  

程序代码:
#include <stdio.h>    #include <time.h>    //#define discCount 30  long move(int, char, char,char);  int main()  {      int discCount;      printf("请输入您想设置的金片数量:\n");      scanf("%d",&discCount);          double t1,t2;        long count;      t1=time(0);        count=move(discCount,'A','B','C');      t2=time(0);        printf("%d个盘子需要移动%ld次\n", discCount, count);        printf("用时 %d 秒!", (int)(t2-t1));        return 0;  }    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;      }  }  
运行结果:


知识点总结:

认识程序的运行时间

学习心得:

认识了代码运行时间和输入循环的关系。



0 0