汉诺塔问题
  • 板块灌水区
  • 楼主skyzxc123
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/22 20:16
  • 上次更新2024/1/22 22:13:31
查看原帖
汉诺塔问题
1097831
skyzxc123楼主2024/1/22 20:16
#include<cstdio>
void move(int x, int y)
{
	printf("%c->%c\n", x, y);
}
void hanoi(int n, char a, char b, char c)
{
	if (n == 1)
	{
		move(a, c);
	}
	else
	{
		hanoi(n - 1, a, c, b);//将A座上的n-1个盘子借助C座移向B座
		move(a, c);//将A座上最后一个盘子移向C座
		hanoi(n - 1, b, a, c);//将B座上的n-1个盘子借助A座移向C座
	} 
}
//move中的实参与hanoi函数中的形参相对应,而hanoi函数中形参a,b,c所对应的值也是在有规律的变化
int main()
{
	int n = 0;
	scanf("%d", &n);
	hanoi(n, 'A', 'B', 'C');
	return 0;
}

这是三个柱子的汉诺塔,四个的话需要改那些地方?

2024/1/22 20:16
加载中...