From bb31cc98ec124746b2cb9a84c09d1f714fc8f756 Mon Sep 17 00:00:00 2001 From: Kitaibel <2017060203008@std.uestc.edu.cn> Date: Tue, 13 Mar 2018 09:57:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86hanoi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- level1/p08_hanoi/hanoi_Kitaibel.c | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 level1/p08_hanoi/hanoi_Kitaibel.c diff --git a/level1/p08_hanoi/hanoi_Kitaibel.c b/level1/p08_hanoi/hanoi_Kitaibel.c new file mode 100644 index 00000000..d815938d --- /dev/null +++ b/level1/p08_hanoi/hanoi_Kitaibel.c @@ -0,0 +1,35 @@ +#include + +void hanoi(int n, char a,char b,char c); +void move(int n, char a, char b); + +int count; + +int main() +{ + int n=8; + printf("请输入汉诺塔的层数:"); + scanf("%d",&n); + hanoi(n, 'A', 'B', 'C'); + return 0; +} + +void hanoi(int n, char a, char b, char c) +{ + if (n == 1) //把第n个盘子由A移到C + { + move(n, a, c); + } + else //把n-1个盘子由A移到B + { + hanoi(n - 1, a, c, b); + move(n, a, c); + hanoi(n - 1, b, a, c); + } +} + +void move(int n, char a, char b) +{ + count++; + printf("第%d步:从%c移到%c\n",count,a,b); +}