다음 C 프로그램의 출력 결과는?
#include <stdio.h>
int repeat(int a, int b) {
if (b == 0) return a;
else if (b % 2 == 0) return repeat(a + a, b / 2);
else return repeat(a + a, b / 2) + a;
}
int main() {
printf("%d", repeat(3, 6));
return 0;
}ITPASSLAB 재구성 문제 자료
크게 보기 ↗
크게 보기 ↗정답 4번
repeat(3,6)은 b가 짝수이므로 repeat(6,3)이 된다. b=3은 홀수이므로 repeat(12,1)+6, b=1도 홀수이므로 repeat(24,0)+12+6이 된다. 기저 조건에서 repeat(24,0)=24이므로 최종값은 24+12+6=42다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 자동 검사 완료
- 해설 작성·검수
- 정처LAB 자동 검사
- 최종 검수
- 2026-08-24