C빈칸 채우기어려움 · 30점#재귀#함수

77. 하노이 탑 재귀와 호출 횟수

다음은 원판 3개를 기둥 A에서 C로 옮기는 하노이 탑 C 프로그램이다. 실행 결과가 차례로 `1:A->C`, `2:A->B`, `1:C->B`, `3:A->C`, `1:B->A`, `2:B->C`, `1:A->C`, `7 15`가 되도록 빈칸 ①에 들어갈 인자 3개를 매개변수 이름을 사용해 쉼표로 구분하여 쓰시오.

1#include <stdio.h>
2
3int moves = 0;
4int calls = 0;
5
6void hanoi(int n, char from, char via, char to) {
7 calls++;
8 if (n == 0) {
9 return;
10 }
11 hanoi(n - 1, from, to, via);
12 printf("%d:%c->%c\n", n, from, to);
13 moves++;
14 hanoi(n - 1, ( ① ));
15}
16
17int main() {
18 hanoi(3, 'A', 'B', 'C');
19 printf("%d %d\n", moves, calls);
20 return 0;
21}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.