汉罗塔问题的递归实现(C语言版本)
在这个问题中,我们需要将由大到小堆叠的汉罗盘从柱子A借助柱子B转移至柱子C上。在这个过程中,我们需要严格执行“小盘置于大盘之上”这个规则。
#include "stdafx.h"
#include"conio.h"
void Move(char a
, char b
)
{
printf("%c->%c\n", a
, b
);
}
void Hanoi(int n
, char a
, char b
, char c
)
{
if (n
== 1)
Move(a
, c
);
else
{
Hanoi(n
- 1, a
, c
, b
);
Move(a
,c
);
Hanoi(n
- 1, b
, a
, c
);
}
}
int main()
{
char a
='A', b
='B',c
='C';
Hanoi(8, a
, b
, c
);
_getch();
return 0;
}
转载请注明原文地址: https://lol.8miu.com/read-24678.html