#include <stdio.h>
void hanoi(int n, char x, char y, char z);
int count = 0;
void hanoi(int n, char x, char y, char z)
{
if (n == 1)
{
count++;
printf("%3d : %c ---> %c\n", count, x, z);
}
else
{
hanoi(n-1,x,z,y);//将前 n-1 个盘子从x移动到y上
count++;
printf("%3d : %c ---> %c\n", count, x, z);//将最底下的盘子从x移动到z
hanoi(n-1, y,x ,z);//将y上的 n-1 个盘子移动到z上
}
}
void main(void)
{
int i;
printf("请输入罗汉塔的层数:");
scanf("%d", &i);
hanoi(i, 'x', 'y' , 'z' );
}
i = 0
def hanoi(n,x,y,z):
global i #声明全局变量
if n == 1:
i = i + 1
print(str(i),':',x,' ---> ',z)
else:
hanoi(n-1,x,z,y) #将前 n-1 个盘子从x移动到y上
i = i + 1
print(str(i),':',x,' ---> ',z) #将最底下的盘子从x移动到z
hanoi(n-1,y,x,z) #将y上的 n-1 个盘子移动到z上
n = int(input('请输入层数:'))
hanoi(n,'x','y','z')