第二周 【项目三】体验复杂度(2)汉诺塔
来源:互联网 发布:网通官方测速软件 编辑:程序博客网 时间:2024/05/16 06:13
/* * Copyright(c) 2015,烟台大学计控学院 * All rights reserved. * 文件名称 :CatMaster.cpp * 作 者 :朱绍懿 * 完成时间 :2015年 9月11日 * 版 本 号 :v1.0 * * 问题描述 : 有一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。 用递归算法求解汉诺塔问题,其复杂度可以求得为O(2^n),是指数级的算法。请到课程主页下载程序运行一下,体验盘子数discCount为4、20、24时在时间耗费上的差异,你能忍受多大的discCount。 * 输入描述 : 需要移动的盘子数。 * 程序输出 : 盘子的移动次数。 */ #include <stdio.h>#define discCount 4long move(int, char, char,char);int main(){ long count; count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%ld次\n", discCount, count); 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; }}<img src="http://img.blog.csdn.net/20150921172255438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20150921172304476?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20150921172315533?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
0 0
- 第二周 【项目三】体验复杂度(2)汉诺塔
- 第二周 项目三-- (体验复杂度)汉诺塔
- 第二周项目三—体验复杂度(2)
- 第二周项目三-体验复杂度(2)
- 第二周——项目三(2)—体验复杂度-汉诺塔
- 第二周 项目三 体验复杂度
- 第二周 项目三 体验复杂度
- 第二周 项目三--体验复杂度
- 第二周项目三-体验复杂度
- 第二周-项目三-体验复杂度
- 第二周项目三 体验复杂度
- 第二周-项目三-体验复杂度
- 第二周项目三:体验复杂度
- 第二周项目三-体验复杂度
- 第二周项目三 体验复杂度
- 第二周项目三体验复杂度
- 第二周项目三-体验复杂度
- 第二周项目三-体验复杂度
- HTTP协议在Xcode7.0无法正常使用的问题
- 小强的HTML5移动开发之路(6)——Canvas图形绘制基础
- oracle中的null
- libcurl上传文件 post from表单、post二进制的区别
- Effective Java 学习 第三条 用私有构造器或者枚举类型强化Singleton属性
- 第二周 【项目三】体验复杂度(2)汉诺塔
- 理解Bitcode:一种中间代码
- C语言生成随机数
- linux基础篇-当你拿到一台新的服务器(持续更新)
- Eclipse 安装插件常用的插件(aptana、svn 、git、Java EE、JSHint、FindBugs)
- 第二周,项目三
- OC基础教程10-代码块和并发性
- Freebsd利用crontab定时关机
- 第三周项目2 建立顺序表算法库