2017년 4월 정보처리산업기사 실기 17번 문제 질문합니다.
int i;
if (n<1)
return2; → return2가 의미하는 게 무엇인가요? n이 1보다 작으면 n에 2를 준다는 건가요?
else → n값으로 5를 입력받았으니 else문으로 오는 게 맞죠?
{
i = (2*recursive(n-1))+1; → 왜 해설은 i = (2*recursive(n)+1 으로 계산을 하죠?
prinft("%d/n", i);
return i;
}
해설을 봐도 recursive 함수의 정확한 연산방법을 모르겠습니다ㅠㅠ
안녕하세요 길벗수험서 운영팀입니다.
재귀함수와 관련된 기본적인 원리는 교재 1권 91쪽과 교재 3권의 36페이지의 QR코드를 통한 강의영상을 참고해주세요.
return 2는 해당 함수의 최종 결과로 2를 반환하겠다는 의미입니다.
return문을 만나는 순간 사용자정의함수는 해당 부분에서 종료하게 됩니다.
현재 pdf의 해설부분을 살펴보았으나 (2*recursive(n))+1 부분은 찾지 못했습니다.
앞에서 recursive(n-1)이 수행되었다면 뒤의 recursive함수는 n-1을 n으로 받아들여 recursive(n)을 수행합니다.
행복한 하루되세요 :)
-
관리자2019-04-11 11:41:25
안녕하세요 길벗수험서 운영팀입니다.
재귀함수와 관련된 기본적인 원리는 교재 1권 91쪽과 교재 3권의 36페이지의 QR코드를 통한 강의영상을 참고해주세요.
return 2는 해당 함수의 최종 결과로 2를 반환하겠다는 의미입니다.
return문을 만나는 순간 사용자정의함수는 해당 부분에서 종료하게 됩니다.
현재 pdf의 해설부분을 살펴보았으나 (2*recursive(n))+1 부분은 찾지 못했습니다.
앞에서 recursive(n-1)이 수행되었다면 뒤의 recursive함수는 n-1을 n으로 받아들여 recursive(n)을 수행합니다.
행복한 하루되세요 :)