프로그래밍의 기초(의사 코드 트레이스)
다음 프로시저 p를 p(3)으로 호출했을 때, 출력되는 값의 순서는?
○p(integer: n)
if (n > 0)
p(n − 1)
output n
p(n − 1)
endif
- A1, 1, 2, 1, 1, 2, 3
- B3, 2, 1, 1, 2, 1, 1
- C1, 2, 1, 3, 1, 2, 1
정답과 해설 보기
정답: C. 1, 2, 1, 3, 1, 2, 1
p(1)은 p(0), 1의 출력, p(0) 순으로 실행하므로 '1'만 출력합니다. p(2)는 p(1), 2의 출력, p(1)이므로 '1, 2, 1'입니다. p(3)은 p(2)의 '1, 2, 1', 3의 출력, 다시 p(2)의 '1, 2, 1'로 1, 2, 1, 3, 1, 2, 1이 됩니다. 출력은 2³ − 1 = 7개로, 원판 3개인 하노이의 탑에서 옮기는 원판 번호의 순서와 같습니다.