汉诺塔实现笔记

 

汉诺塔的主要目的是把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\n", x, z);
 8     }
 9     else
10     {
11         move(n-1, x, z, y);        //n-1在x,将n-1通过z移动到y上
12         printf("%c --> %c\n", 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("移动步骤:\n");
24     move(n, 'x', 'y', 'z');
25     return 0;
26 }

 

 

posted @ 2018-03-17 16:33  QKSword  阅读(264)  评论(0编辑  收藏  举报