다음 gcd 함수에 대해 gcd(54, 30)을 호출하였을 때 반환되는… | [국회직 9급 컴퓨터일반] 22년 1회차 기출문제 상세 페이지
1[국회직 9급 컴퓨터일반] 22년 1회차
다음 gcd 함수에 대해 gcd(54, 30)을 호출하였을 때 반환되는 값은?int gcd(int max, int min) {
if (min == 0) return max;
else return gcd(min, max % min);
}
1
6
2
0
3
54
4
30
5
24
해설
유클리드 호제법으로 구한 반환값은 6이다.
호출을 추적하면 다음과 같다.
gcd(54, 30) → gcd(30, 24)
gcd(30, 24) → gcd(24, 6)
gcd(24, 6) → gcd(6, 0)
gcd(6, 0): min이 0이므로 max인 6을 반환한다.
- 값 0: 종료 시점의 min 값이며 반환되는 값은 max이다.
- 값 54: 처음 전달한 max 인수일 뿐이다.
- 값 30: 처음 전달한 min 인수일 뿐이다.
- 값 24: 첫 재귀에서 구한 나머지일 뿐이다.
오류나 개정된 내용이 보이면 알려주세요