汉诺塔的主要目的是把X上的圆盘移动到Z上,而实现的过程可以分为3部:把n-1个圆盘放到Y上,把第n个放到Z上,再把Y上的n-1个圆盘放到Z上
C语言列出步骤,代码是从小甲鱼数据结构与算法中看到的,大家可以去学习一下
1 #include <stdio.h> 2 3 void move(int n, char x, char y, char z) 4 { 5 if(n == 1) 6 { 7 printf("%c --> %c ", x, z); 8 } 9 else 10 { 11 move(n-1, x, z, y); //n-1在x,将n-1通过z移动到y上 12 printf("%c --> %c ", x, z); //将第n个移动到z上 13 move(n-1, y, x, z); //n-1在y,将n-1通过x移动到z上 14 } 15 } 16 17 int main() 18 { 19 int n; 20 21 printf("请输入汉诺塔的层数:"); 22 scanf("%d", &n); 23 printf("移动步骤: "); 24 move(n, 'x', 'y', 'z'); 25 return 0; 26 }