第二周项目—汉诺塔

*Copyright  (c)2017,烟台大学计算机与控制工程学院  
*All rights reservrd.  
*文件名称 :test.cpp  
*作者:刘文平  
*完成时间:2017年9月7日  
*版本号:v1.0  
*问题描述:体验复杂度为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;
     }
 }

知识点总结:
体验复杂程度为O(2^n)的程序的运行时间。
学习总结:
体验盘子数discCount为4、8、16、20、24时在时间耗费上的差异。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值