코딩일기/자격증
[정보처리기사] 재귀함수 | 2022년 정보처리기사 실기
jhy_2023
2024. 7. 22. 09:29
728x90
반응형
1. 다음 소스코드에서 입력값이 5가 들어왔을 때 출력되는 값을 작성하시오.
#include <stdio.h>
int func(int a) {
if (a <= 1) return 1;
return a * func(a - 1);
}
int main() {
int a;
scanf("%d", &a);
printf("%d", func(a));
}
답 : 120
728x90
- main 함수:
- 사용자로부터 정수 a를 입력받습니다. 여기서는 a = 5입니다.
- printf("%d", func(a));를 호출하여 func(5)의 결과를 출력합니다.
- func 함수:
- func(5) 호출:
- a가 1보다 크므로 5 * func(4)를 계산합니다.
- func(4) 호출:
- a가 1보다 크므로 4 * func(3)를 계산합니다.
- func(3) 호출:
- a가 1보다 크므로 3 * func(2)를 계산합니다.
- func(2) 호출:
- a가 1보다 크므로 2 * func(1)를 계산합니다.
- func(1) 호출:
- a가 1이므로 1을 반환합니다.
- func(5) 호출:
- 재귀 호출의 반환 과정:
- func(1)은 1을 반환합니다.
- func(2)는 2 * 1 = 2를 반환합니다.
- func(3)는 3 * 2 = 6을 반환합니다.
- func(4)는 4 * 6 = 24를 반환합니다.
- func(5)는 5 * 24 = 120을 반환합니다.
- 최종 출력:
- main 함수는 printf를 통해 func(5)의 결과인 120을 출력합니다.
따라서, 입력값이 5일 때 프로그램의 출력값은 120입니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형