',' 逗号运算符,分隔/或去最后一个等式 while(~scanf("%d",&a)) 析构函数 输入正确执行/输入错误重新输入 自动转换转换为高的类型,或强制转换。 递归函数:把递归条件写下来,特判停止条件和递归条件 exp:Hanoi塔问题 hanoi(n, A, B, C)={mov(1, ...
分类:
其他好文 时间:
2016-03-28 01:56:25
阅读次数:
154
题目大意:基于汉诺塔原型,第一根柱子上有n个盘子,从上至下编号从1依次递增至n。在最佳移动方案中,第m次所移动的盘子的编号。 解题思路:模拟必然是会超时的。但根据汉诺塔的递归原理,容易发现,对于n阶汉诺塔,将第一个盘从A柱移动到B柱是一步,将前两个盘从A柱移动到B柱是3步,以此类推,将n个盘从A柱移 ...
分类:
其他好文 时间:
2016-03-26 12:11:14
阅读次数:
122
首先介绍下汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个
分类:
编程语言 时间:
2016-03-22 19:16:48
阅读次数:
196
N阶汉诺塔:假设有3个分别命名为x,y,z的三个塔座,在x上有n个盘子,直径大小不同,有小到大按标号1,2,3...n排列,要借助y将n个盘子转移到z上,期间不能让小盘子压在大盘子上。规则: 当n=1时,直接把盘子由x——>z; 当n>1时,需利用y,首先将(n-1)个盘子由x——>y,把第n个实现
分类:
编程语言 时间:
2016-03-21 18:08:51
阅读次数:
183
目前做过的最纠结的一道递推题。 情况比较多,比较复杂。。。 这题最主要的还是要推出当m=2 时和m>2时,用什么方法最优。 给个数据 n=3,m=2 需要48 n=3,m=3 需要81 如果在纸上把这两种情况推出来,这题就容易找到递推。 m=1,就是最基础的汉诺塔递推了。 Time Limit: 2
分类:
其他好文 时间:
2016-03-19 12:37:19
阅读次数:
323
今天在hanoi问题上出现了segmentation fault 在gcc编译的过程中 没出现error,然而程序运行到一半就出现segmentation fault; 上网发现 这条语句是非法的内存操作,如数组越界(申请了a[5],结果使用了a[6]), 检测发现是我的被调用函数 void han
分类:
其他好文 时间:
2016-03-19 01:02:58
阅读次数:
529
三个汉诺塔算法 f(n)=2^n-1 两个思路大同小异 Frame算法 在1941年,一位名叫J. S. Frame的人在《美国数学月刊》上提出了一种解决四柱汉诺塔问题的算法,这是人们熟知的Frame算法: (1)用4柱汉诺塔算法把A柱上部分的n- r个碟子通过C柱和D柱移到B柱上【F( n- r
分类:
其他好文 时间:
2016-03-16 22:44:10
阅读次数:
264
对于上面把问题抽象出来的那段描述,对于n > 1的时候,又可以抽象(换成“总结”这个词会没那么大压力吗?)出这3步:
(1)、将底盘n以上的环(n-1个)移动到B
(2)、将底盘n从A移动到C
(3)、将B上的环(n-1个)移动到C
其中第1步和第3步的步数是一样的,因为环的数量一样(n-1个),只是目标的柱子不同而已。public class TowerApp {
/**...
分类:
其他好文 时间:
2016-03-14 12:19:39
阅读次数:
153