다음 C 프로그램의 실행 결과는?#include <stdio.h&… | [7급 국가직 자료구조론] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 자료구조론] 26년 1회차
다음 C 프로그램의 실행 결과는?#include <stdio.h>
int count = 0;
void new_hanoi(int n, char from, char tmp, char to) {
if (n <= 2)
count += n;
else {
new_hanoi(n - 2, from, to, tmp);
count += 2;
new_hanoi(n - 2, tmp, from, to);
}
}
int main() {
new_hanoi(9, 'A', 'B', 'C');
printf("%d", count);
return 0;
}
1
31
2
46
3
62
4
511
해설
출력은 46이다.
count 증가량을 이라 하면 , 이다.
따라서 출력은 46이다.
- 31은 원판 5개 일반 하노이 이동 횟수() 같은 값으로, 이 재귀식과 무관하다.
- 62는 위 재귀식으로 얻어지지 않는 값이다.
- 511은 원판 9개 일반 하노이 이동 횟수()로, 두 개씩 줄이는 이 함수와 다르다.
오류나 개정된 내용이 보이면 알려주세요