Problem Description还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢?(只允许最大的放在最上面)当然最后需要的结果是盘子从小到大...
分类:
其他好文 时间:
2015-11-07 17:29:00
阅读次数:
161
汉诺塔问题def move(a,b,c,n):#x原坐标 ,y终点坐标,z辅助坐标,n个数 if n==1: print'%s->%s:%s'%(a[0],b[0],a[-1]) b.append(b.pop()) print x,y,z ...
分类:
编程语言 时间:
2015-11-06 11:09:27
阅读次数:
434
dp(x, y)表示第x根柱子上y个盘子移开后到哪根柱子以及花费步数..然后根据汉诺塔原理去转移...-----------------------------------------------------------------------#include#include#includeusin...
分类:
其他好文 时间:
2015-11-03 12:29:11
阅读次数:
183
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1207四柱汉诺塔问题当r = (sqrt(8*n+1)-1)/2 时,存在 count =(n-(r*r-r+2)/2)*(int)pow(2,r)+1 ,此时所需的步骤最少。 1 #include 2 ...
分类:
其他好文 时间:
2015-10-31 15:32:58
阅读次数:
176
个人觉得汉诺塔这个递归算法比电子老鼠的难了一些,不过一旦理解了也还是可以的,其实网上也有很多代码,可以直接参考。记得大一开始时就做过汉诺塔的习题,但是那时代码写得很长很长,也是不理解递归的结果。现在想起来汉诺塔的算法就3个步骤:第一,把a上的n-1个盘通过c移动到b。第二,把a上的最下面的盘移到c。...
分类:
编程语言 时间:
2015-10-26 22:02:40
阅读次数:
238
#include using namespace std; /*汉诺塔:把n个盘子从A柱子上移到C柱子上:把n-1个盘子从A柱子上移到B柱子上把第n个盘子从A柱子上移到C柱子上再把n-1个盘子从B柱子移到C柱子上*/void move(int n,char a,char b){ cout>n...
分类:
其他好文 时间:
2015-10-21 20:41:47
阅读次数:
152
Hanoi(汉诺)塔问题。这是一个经典的数学问题:古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘子,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在..
分类:
其他好文 时间:
2015-10-19 02:08:05
阅读次数:
308
1、简短我介绍2、字符串处理 找出最长数字子串如字符串aadf1234sdfg1233、递归 提到常见的八皇后、汉诺塔 算法求两个字符串的最短距离 定义了三中距离123 1234 123124 123 1234第一种:替换一次字符,距离为1第二种:删除一个字符,距离为1第三种,增加一个字符...
分类:
其他好文 时间:
2015-10-18 14:09:44
阅读次数:
206
Matlab的递归调用,好久不用matlab了,练练手。 global handCount; handCount = 1; huuotsun(1, 2, 3, 3) function huuotsun(cur, ...
分类:
其他好文 时间:
2015-10-06 19:31:38
阅读次数:
259
递归汉诺塔 双层递归
#include
void han(int n, char A, char B, char C)
{
static int num = 1;
std::cout << "第" << num << "次";
num++;
if (n<1)
{
return;
}
else
{
han(n - 1, A, C, B);
std::cout "...
分类:
编程语言 时间:
2015-10-03 14:28:41
阅读次数:
185