문제 5번에 i=(2*recursive(n-1)+1
return i 라고하는데
답지해설에는 그런말이 없지만 이문제와 동일한 문제에대한 묻고답하기란에 답변하신걸 보니까 n=i라고 해놓으셧던데 그러면
그 위에 int recursive (int n) 여기에서 (int n) 이부분에도 저 i=(2*recursive(n-1)+1 에서의 실행된 값으로 recursive((2*recursive(n-1)+1)바껴야하는거 아닌가요 괄호안이?
예를들어 recursive((2*recursive(4)+1))
(2*recursive(3)+1) 이렇게 바껴야 하는거 아닌가요?
왜 답지에서는 저부분에는 n-1로 차감된값만 넣어서 recursive(4) recursive(3) recursive(2) recursive(1) 이렇게 해놧는지 이해가 안갑니다.
안녕하세요 길벗수험서 운영팀입니다.
493쪽의 박스 상단 recursive(4)... 를 말씀하시는 것 같은데, 해당 부분은 호출되는 함수명을 의미하는 것입니다.
recursive(5)를 수행 했을 때, (2*recursive(4))+1 이 수행되고 이로 인해 recursive(4)의 결과를 반환받기 위해 이를 호출 합니다.
다음 recursive(4)를 수행 했을 때, (2*recursive(3))+1 이 수행되고 이로 인해 recursive(3)의 결과를 반환받기 위해 이를 호출 합니다.
...
와 같이 되는 것이죠.
말씀과 같이 식을 연쇄적으로 중첩하여 나열하는 방법도 가능합니다.
다만 그 경우 보기 어려워하는 분들이 많아 최대한 풀어본 것이죠.
행복한 하루되세요 :)
-
관리자2021-08-24 11:34:28
안녕하세요 길벗수험서 운영팀입니다.
493쪽의 박스 상단 recursive(4)... 를 말씀하시는 것 같은데, 해당 부분은 호출되는 함수명을 의미하는 것입니다.
recursive(5)를 수행 했을 때, (2*recursive(4))+1 이 수행되고 이로 인해 recursive(4)의 결과를 반환받기 위해 이를 호출 합니다.
다음 recursive(4)를 수행 했을 때, (2*recursive(3))+1 이 수행되고 이로 인해 recursive(3)의 결과를 반환받기 위해 이를 호출 합니다.
...
와 같이 되는 것이죠.
말씀과 같이 식을 연쇄적으로 중첩하여 나열하는 방법도 가능합니다.
다만 그 경우 보기 어려워하는 분들이 많아 최대한 풀어본 것이죠.
행복한 하루되세요 :)