오늘은 재귀적 기법을 이용해 c++로 하노이 탑 알고리즘을 구현해봤다.

#include <iostream>
using namespace std;

void Hanoi(int n, char from, char tmp, char to)
{
	if (n == 1)
		cout << "Disk" << n << " move from " << from << " to " << to << endl;
	else
	{
		Hanoi(n - 1, from, to, tmp); // from에서 to로 이동
		cout << "Disk" << n << " move from " << from << " to " << to << endl;
		Hanoi(n - 1, tmp, from, to); // tmp에서 to로 이동
	}
}

int main()
{
    int n;
    cout << "원반의 수를 입력하시오 : ";
    cin >> n;
	Hanoi(n, 'A', 'B', 'C');
}

카테고리:

업데이트:

댓글남기기