25-1아래 Java 프로그램을 실행하면 출력되는 값을 적으시오.pub… | 2025년 정보처리기사실기 1회차 기출문제 상세 페이지
9
25-1
아래 Java 프로그램을 실행하면 출력되는 값을 적으시오.
public class Main {
static int calc(int n) {
if (n <= 2) return 1;
return calc(n - 1) + calc(n - 3);
}
static int calc(String s) {
int n = Integer.parseInt(s);
if (n <= 2) return n;
return calc(n - 2) * 2;
}
public static void main(String[] args) {
System.out.println(calc("7"));
}
}해설
8
[해설]
calc("7")은 인자가 문자열이라 String 버전이 호출되고, 그 안의 calc(n − 2)는 정수 인자라 int 버전으로 넘어간다(오버로딩).
String 버전은 calc(5) × 2를 반환하고, int 버전은 n ≤ 2이면 1, 아니면 calc(n−1) + calc(n−3)을 반환한다.
calc(3) = calc(2) + calc(0) = 1 + 1 = 2
calc(4) = calc(3) + calc(1) = 2 + 1 = 3
calc(5) = calc(4) + calc(2) = 3 + 1 = 4
4 × 2 = 8
혼동 주의: n ≤ 2일 때 n을 그대로 돌려주는 것은 String 버전뿐이다. 재귀 호출은 전부 int 버전이라 1을 돌려준다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.