0
点赞
收藏
分享

微信扫一扫

Win10 + VS017 编译SQLite3.12.2源码

斗米 2023-11-08 阅读 35
输入

盘子个数n。

输出

将n个盘子从A移动到C的方法。

分析

使用递归的方法,将每一步的移动方法输出

代码

void move(int a, int b) {
	printf("%c->%c\n", a, b);
}
void hanluota(int n, char a, char b, char c) {
	if (n == 1) {
		move(a, c);
	}
	else {
		hanluota(n - 1, a, c, b);//将A座上的n-1个盘子借助C座移向B座
		move(a, c);//将A座上最后一个盘子移向C座
		hanluota(n - 1, b, a, c);//将B座上的n-1个盘子借助A座移向C座
	}
}

int main() {
	int n = 0;
	scanf("%d", &n);
	hanluota(n, 'A', 'B', 'C');
	return 0;
}
举报

相关推荐

0 条评论