문제
다음 C 프로그램의 실행 결과는?
#include <stdio.h> int calculate(int x, int y) { if (x == 0) return y; return calculate(x-1, y) + calculate(x-1, y+1); } int main() { printf("%d", calculate(3, 2)); return 0; }
① 14 ② 20 ③ 26 ④ 28
정답
4번
해설
재귀 호출을 직접 추적하면 calculate(1,2)=2+3=5, calculate(1,3)=3+4=7, calculate(1,4)=4+5=9, calculate(1,5)=5+6=11이다. 따라서 calculate(2,2)=5+7=12, calculate(2,3)=7+9=16이고, 최종적으로 calculate(3,2)=12+16=28이다.