프로그래밍의 기초(의사 코드 트레이스)
다음 함수 s를 s(7)로 호출했을 때의 반환값은?
○integer: s(integer: n)
if (n ≦ 0)
return 0
endif
return n + s(n − 2)
- A15
- B16
- C28
정답과 해설 보기
정답: B. 16
s(7)은 7 + s(5)를, s(5)는 5 + s(3)을, s(3)은 3 + s(1)을, s(1)은 1 + s(−1)을 구하려고 차례로 호출하며, s(−1)은 n ≦ 0이므로 0을 반환합니다. 호출한 곳으로 돌아가면서 더해져 s(7) = 7 + 5 + 3 + 1 + 0 = 16이 됩니다. 7 이하의 양의 홀수의 합입니다.