알고리즘/백준

하노이 탑 이동 순서

슈도코드 2019. 10. 6. 22:34

#include <iostream>
using namespace std;

void hanoi(int num, int a, int b, int c)
{
	if (num == 1) 
		cout << a << ' ' << c << '\n';
	else
	{
		hanoi(num - 1, a, c, b);
		cout << a << ' ' << c << '\n';
		hanoi(num - 1, b, a, c);
	}
}

int main()
{
	int i, j;
	int num;
	int N = 1;

	cin >> num;

	for (i = 0; i < num; i++) N = N * 2;
	N = N - 1;

	cout << N << '\n';
	hanoi(num, 1, 2, 3);
}