정보처리기사 실기 시험 기출 문제 - 재귀 함수의 사용
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: factorial_recursion.c
#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));
}
입력 예시
5
출력 예시
120
해설
이 프로그램은 사용자로부터 정수를 입력받아 해당 정수의 팩토리얼을 계산하는 재귀 함수 func
를 사용합니다.
func
함수는 인자a
에 대해a <= 1
일 경우 1을 반환합니다. 이는 팩토리얼 계산의 기저 조건입니다.a > 1
일 경우,func
함수는a
와func(a - 1)
의 곱을 반환합니다. 이는 팩토리얼 계산의 재귀적 부분입니다.main
함수에서는 사용자로부터 정수a
를 입력받습니다.- 입력 받은
a
의 팩토리얼을 계산하기 위해func(a)
를 호출하고, 그 결과를 출력합니다.
이 프로그램은 재귀적 호출을 사용하여 팩토리얼을 계산하는 과정을 보여 줍니다. 팩토리얼의 계산은 기본적인 재귀 함수의 사용 예로 널리 알려져 있습니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!