이 문제 틀린 분들이 얼마나 될까요?
//===================================================
20. 다음 C 프로그램의 출력 결과는? [2024년 국가 9급]
#include <stdio.h>
int recursive(int n)
{
int sum;
if (n > 2) { //재귀호출
sum = recursive(n-1) + recursive(n-2);
printf("%d ", sum); // 출력 : 3 5 3 8 - 중간 계산 과정
}
else //완료조건
sum = n;
return sum;
}
int main(void)
{
int result;
result = recursive(5);
printf("%d", result); // 출력 : 8
return 0;
}
① 1 2 3 5 7 ② 1 3 5 7 9
③ 3 3 5 9 9 ④ 3 5 3 8 8
//==================================================
피보나치수 구하는 재귀호출과 같은 것이고
반환값을 출력하기 전에 재귀호출함수에서 중간 계산 결과를 출력함
그런데, 반환값이 8이므로 중간 계산 결과 출력되는 것은 몰라도 답을 찾을 수 있음