本文所有代码均为伪码,仅阐述算法基本思想
- 算法1
Hanoi塔问题算法
int c=0; // 全局变量,搬动次数
void move(char x,int n,char z)
{ // 第n个圆盘从塔座x搬到塔座z
printf("第%i步:将%i号盘从%c移到%c\n",++c,n,x,z);
}
void hanoi(int n,char x,char y,char z)
{ // 将塔座x上按直径由小到大且自上而下编号为1至n的n个圆盘
// 按规则搬到塔座z上。y可用作辅助塔座
if(n==1)