把大象装进冰箱里

自己没看过任何相关写法,就此问题想了两届晚自习,终于在第二天的数学课上找到灵感。

直接上代码了。

#include<iostream>
using namespace std;
int m = 1;

void move(int n,char a,char b,char c) {
	if (n == 1)
		cout << m++ << " move " << a << " to " << c << endl;
	else		//完成一次把大象装进冰箱里
	{
		move(n - 1, a, c, b);		//打开冰箱门
		move(1, a, b, c);			//把大象装进去
		move(n - 1, b, a, c);		//关上冰箱门
	}
}

int main() {
	char a='A', b='B', c='C';
	move(10, a, b, c);
	system("pause");
	return 0;
}

图片来自知乎Hanoi 汉诺塔问题
Hanoi 汉诺塔问题
Hanoi 汉诺塔问题
Hanoi 汉诺塔问题
Hanoi 汉诺塔问题
初学小白,欢迎指教

相关文章:

  • 2022-12-23
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2021-08-05
  • 2021-12-01
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2021-08-18
  • 2022-02-10
  • 2021-06-04
相关资源
相似解决方案