汉诺塔——递归的应用

关于汉诺塔的原理,可看这里:点击打开链接

下面是源代码:

#include

//将n个盘子从X借助Y移动到Z
void move(int n,char x,char y,char z)
{
	if(1==n)
	{
		printf("%c-->%c\n",x,z);
	}
	else
	{
		move(n-1,x,z,y);//将n-1个盘子从X借助Z移动到Y上
		printf("%c-->%c\n",x,z);//将第n个盘子从x移动到Z上
		move(n-1,y,x,z);//将n-1个盘子从X借助Z移动到Y上
	}
}
int main()
{
	int n;
	printf("请输入汉诺塔的层数:");
	scanf("%d",&n);
	printf("移动的步骤如下:\n");
	move(n,'x','y','z');
	
	return 0;
}


你可能感兴趣的:(C++)