정보처리기사 실기 - 2023년 3회 C언어 기출 풀이(재귀 함수 & 팩토리얼 문제)

Alchemist·2025년 9월 20일

정보처리기사

목록 보기
28/114

✨ 문제

다음 C언어 코드에 알맞는 출력값을 작성하시오.

#include <stdio.h>
 
int f(int n) {
    if(n <= 1) return 1;
    else return n * f(n-1);
}
 
int main() {
    printf("%d", f(7));
}

🎯 출제 의도

  • 재귀 함수 호출 원리 이해
  • 팩토리얼 계산 과정 확인
  • 조건문을 통한 종료 조건(base case) 확인

📘 개념 정리

1. 재귀 함수 구조

if(n <= 1) return 1;
else return n * f(n-1);
  • n=1일 때 종료 조건 → 1 반환
  • 그렇지 않으면 n * f(n-1) → 팩토리얼 정의 그대로 구현

2. 팩토리얼(Factorial)

  • 수학적 정의:

    n!=n×(n1)×(n2)××1n! = n \times (n-1) \times (n-2) \times \cdots \times 1
  • 예: 7! = 7 × 6 × 5 × 4 × 3 × 2 × 1


📝 풀이 과정

f(7) 
= 7 * f(6)
= 7 * (6 * f(5))
= 7 * 6 * (5 * f(4))
= 7 * 6 * 5 * (4 * f(3))
= 7 * 6 * 5 * 4 * (3 * f(2))
= 7 * 6 * 5 * 4 * 3 * (2 * f(1))
= 7 * 6 * 5 * 4 * 3 * 2 * 1
= 5040

✅ 최종 출력 결과

5040

💡 정리

이 문제에서 꼭 알아야 할 개념:

  • f(n)은 팩토리얼 함수 구현
  • f(7) = 7! = 5040
  • 재귀 함수 + 종료 조건을 통해 반복문 없이 팩토리얼 구현 가능
profile
html_programming_language

0개의 댓글