- C语言代码示例:
#include<stdio.h>
void Hanoi(int n, char src, char mid, char dest)
//将src座上的n个盘子,以mid座位中转,移动到dest座
{
if( n == 1) {
//只需移动一个盘子
printf("%c -> %c\n", src, dest);
//直接将盘子从src移动到dest即可
return ; //递归终止
}
Hanoi (n-1, src, dest, mid); //先将n-1个盘子从src移动到mid
printf("%c -> %c\n", src, dest);
Hanoi(n-1, mid, src, dest);
return ;
}
int main(){
int n = 0;
printf("汉诺塔测试程序,请输入n:\n");
scanf("%d", &n);
Hanoi(n, 'A', 'B', 'C');
return 0;
}
- 运行示例:
注:文中问题及代码参考 MOOC——《程序设计与算法》(北京大学 郭炜)