반응형
#C언어 #하노이타워 #하노이 #타워 #퍼즐 #hanoitower #퀴즈 #퍼즐
하노이 탑(Tower of Hanoi)
세 개의 기둥과 이 기둥에 꽂을 수 있는 여러 개의 원판이 있다.
첫번째 기둥에 쌓여 있는 원판을 세 번째 기둥으로 옮기는 것이다.
- 한 번에 한 개씩 옮길 수 있다.
- 가장 위에 있는 원판만 옮길 수 있다.
- 큰 원판이 작은 원판 위에 있으면 안된다.
C언어
#include <stdio.h>
void hanoitower(int n, char a, char b, char c)
{
if (n > 0) {
hanoitower(n - 1, a, c, b);
printf("%d번 원반을 %c 에서 %c 로 옮김\n", n, a, b);
hanoitower(n - 1, c, b, a);
}
}
int main()
{
int n = 3; // 원반의 개수
hanoitower(n, 'A', 'B', 'C');
return 0;
}
C++
using namespace std;
#include <iostream>
void hanoitower(int n, char a, char b, char c)
{
if (n > 0) {
hanoitower(n - 1, a, c, b);
cout << n << "번 원반을 " << a << "에서 " << b << "로 옮김\n";
hanoitower(n - 1, c, b, a);
}
}
int main()
{
int n = 3; // 원반의 개수
hanoitower(n, 'A', 'B', 'C');
return 0;
}
1번 원반을 A 에서 B 로 옮김 2번 원반을 A 에서 C 로 옮김 1번 원반을 B 에서 C 로 옮김 3번 원반을 A 에서 B 로 옮김 1번 원반을 C 에서 A 로 옮김 2번 원반을 C 에서 B 로 옮김 1번 원반을 A 에서 B 로 옮김 |
반응형