다음 C 프로그램에서 main() 함수를 실행할 때 fib() 함수가 … | [국회직 9급 컴퓨터일반] 17년 1회차 기출문제 상세 페이지
1[국회직 9급 컴퓨터일반] 17년 1회차
다음 C 프로그램에서 main() 함수를 실행할 때 fib() 함수가 호출되는 횟수로 옳은 것은?#include <stdio.h>
int fib(int n)
{
if(n == 0) return 0;
if(n == 1) return 1;
return(fib(n-1) + fib(n-2));
}
int main()
{
fib(5);
}
1
3번
2
5번
3
10번
4
12번
5
15번
해설
fib(5)를 실행하면 fib() 함수는 모두 15회 호출된다.
fib(n)의 호출 횟수는 자기 자신 1회에 두 재귀 호출의 횟수를 더한 값이다.
- 3회: fib(5)와 그 직접 호출인 fib(4), fib(3)만 센 값이다.
- 5회: fib(5)에서 fib(1)까지 가장 깊은 경로 하나만 센 값이다.
- 10회: fib(5) 1회와 fib(4) 쪽 9회만 더해 fib(3) 쪽 5회가 빠진 값이다.
- 12회: fib(3) 쪽 호출의 중복 호출을 일부 빠뜨린 값이다.
오류나 개정된 내용이 보이면 알려주세요