汉诺塔非递归算法.我只是将盘子的数量等于2,3的情况代到网上别人给的算法中验证了一下,没有错。并没有证明算法的正确性。算法是否有效,有待大家证明。 cG|ihG5)
edt(Zzk@3-
include <iostream> .c[v /SB]
#include <stdlib.h> +gG6(7&+=
zCdQI
#ifdef _WIN32 Z|YiYQl[)
using namespace std; %)7HBj(*J
#endif ]%yph3C
qwlIz/j
static void hanoi(int height) [@U2a$k+d
{ :nuMakZZ
int fromPole, toPole, Disk; L{K:XiPn
int *BitStr = new int[height], //用来计算移动的盘的号码 `ySmzp
*Hold = new int[height]; //用来存贮当前的盘的位置。hold[0]为第一个盘所在的柱号 sLE@Cm]k
char Place[] = {'A', 'C', 'B'}; =?U"#a
int i, j, temp; dMAd-q5{
F2/-Wk@
for (i=0; i < height; i++) b(lC7Xm
{ 5B[kZ?>
BitStr = 0; -5Qsc/s&
Hold = 1; 6m_whGosi
} 7-nz'-'
temp = 3 - (height % 2); //第一个盘的柱号 <$WRc\}&g