摘要: 题目说明: 创世纪时,Benares有一座波罗教塔,是由三只钻石棒所支撑,开始时神在第一根棒子上放置了64个由上至下 依小到大的排列的金盘,并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子的下面的原则。若每日仅搬一个盘子,则当盘子全数搬完时,此塔将会损毁,也就是世界末日来临之时。算法思路: 如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它搬至C,当有两个盘子,就将它当做辅助。 如果盘子超过2个,将第三个一下的盘子遮住,就简单了。 每次处理两个盘子,也就是 A->B,A->C,B->C这三个步骤,被遮住的部分。就进入递归处理。程序代码: 阅读全文
posted @ 2012-11-06 20:16 xingoo 阅读(825) 评论(0) 推荐(0)
摘要: 语法 intresult=factorial(intn);参数: n: n的阶乘返回值: 阶乘结果的位数注意: 本程序直接输出n!的结果,需要返回结果请保留longa[]inlclude <math.h>源程序: int factorial(int n){ long a[10000]; int i,j,l,c,m=0,w; a[0]=1; for(i=1;i<=n;i++) { c=0; for(j=0;j<=m;j++) { a[j]=a[j]*i+c; c=a[j]/10000; ... 阅读全文
posted @ 2012-11-06 20:00 xingoo 阅读(490) 评论(0) 推荐(0)
摘要: 问题描述: 印刷电路板不限区域划分成n*m个方格阵列。如下图所示 精确的电路布线问题要求确定连接方格a的中点,到连接方格b的中点的最短布线方案。 布线时,电路只能沿直线或直角布线。为了避免线路相交,已布的线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。分支限界法的解决方案: 首先,从起始位置a开始,将它作为第一个扩展结点。与该节点相邻,并且可达的方格成为可行结点被加入到活节点队列中,并且将这些方格标记为1. 即从起始方格a到这些扩展方格距离为1. 然后,从活节点队列中取出队首结点作为下一个扩展结点,并将于当前扩展结点相邻且为未标记过的方格标记为2,并存入或节点队列。 最... 阅读全文
posted @ 2012-11-06 10:41 xingoo 阅读(4999) 评论(0) 推荐(0)