第二周项目3 汉诺塔问题
2015-09-14 17:04
267 查看
问题及代码
运行结果
#define discCount 25
#define discCount 27
#define discCount 28
#define discCount 29
#define discCount 30
/* *Copyright (c) 2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:ha.cpp *作者:陈梦萍 *完成日期:2015年9月14日 *版本号:v1.0 * *问题描述:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。 印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大 到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照 下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大 片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针 上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。 *输入描述:无 *程序输出:__个盘子需要移动__次 用时__秒 */ #include <stdio.h> #include <time.h> #define discCount 25 long move(int, char, char,char); int main() { long count; double t1,t2; t1=time(0); count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%ld次\n", discCount, count); t2=time(0); 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; } }
运行结果
#define discCount 25
#define discCount 27
#define discCount 28
#define discCount 29
#define discCount 30
相关文章推荐
- 体验复杂度—两种排序算法的运行时间
- 原地归并算法
- Android SharedPreferences的使用
- 前端性能优化篇(常见)
- C++Primer第五版 4.9节练习
- PoolBoy
- const
- 第二周项目3-汉诺塔
- Spring 3 MVC and JSR303 @Valid example
- Android+Maven+Eclipse
- 图像拼接算法
- 逆波兰表达式求值
- 已知13个球和一个天平,其中有一个坏球,但是不知道是轻还是重,请用天平秤三次,找到这个坏球。
- 开源中国 OsChina Android 客户端源码分析(9)下载APK功能
- 序算法时间测试比较
- 推荐!国外程序员整理的Java资源大全
- quick2.2与quick3.3的区别(4)
- SVN错误:Attempted to lock an already-locked dir的解决
- hdu 5444 Elven Postman 二叉树
- 项目1-顺序表的基本运算