Study

하노이의 탑 C++로 만들기

wnwnovo 2024. 10. 10. 08:46
// Hanoi.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다.
//

#include <iostream>


int count = 0;
int max = 0;
const int size = 3;
int hanoi[size] = { 1,2,3 };

void Hanoi(int n, int start, int goal)
{
	int middle = max - start - goal;
	count++;
	if (n > 1)
	{
		Hanoi(n - 1, start, middle);
	}
	printf("링 [%d] : %d 기둥 -> %d 기둥\n", n, start, goal);
	if (n > 1)
	{
		Hanoi(n - 1, middle, goal);
	}
}

int main()
{
	for (int i = 0; i < size; ++i)
	{
		max += hanoi[i];
	}
	//최대 링 개수
	int totalRing = 5;
	totalRing++;
	Hanoi(totalRing, hanoi[0], hanoi[2]);
	printf("총 이동 횟수 : %d", count);
}

'Study' 카테고리의 다른 글

Astar C++로 만들기  (0) 2024.10.10
MVC, MVP, MVVM  (0) 2024.09.30