什么是汉诺塔问题?
有三根柱子,在一根柱子上从下往上按照大小顺序摞着圆盘。要从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
代码实现
#include<stdio.h>
void hanoi(int n, char A, char B, char C)
{
if (n == 1)
{
printf("%c->%c\n", A, C);
}
else
{
hanoi(n - 1, A, C, B);
printf("%c->%c\n", A, C);
hanoi(n - 1, B, A, C);
}
}
void main()
{
int m;
printf("input tne number of the diskes:");
scanf("%d", &m);
printf("tne step to movning %d diskes:\n", m);
hanoi(m, 'A', 'B', 'C');
}