lyun135   2년 전

틀린 이유를 찾던 중에 코드의 동작이 도저히 이해가 되지 않아서 질문을 올리게 되었습니다.

4를 입력하면 59(답 61)이 출력되길래 원인을 찾기 위해 각 호출 계산을 출력하도록 하여 확인했습니다.

preview

a[N][m] = a[N-1][m-1] + a[N-1][m+1]의 형태로 일반화했고, N은 자릿수, m은 자릿수의 숫자입니다. 정확한 확인을 위해 이상한 계산이 이루어지는 항목의 값을 소괄호 안에 출력했습니다.

제가 이해가 안되는 부분은 a[4][1]을 구하기 위해 a[3][2]를 구하는 부분입니다. 여기서 a[2][3] = 2로 호출 시에는 정상적으로 계산이 이뤄지는데 a[3][2]를 계산하는 과정에서 a[2][3]의 값이 1이 됩니다...

혹시 a[2][3]을 호출하는 부분의 반환값 문제인가 싶었는데 막상 a[4][3]을 계산하면서 배열에서 a[2][3]을 가져오는 부분을 보니까 2로 제대로 저장이 되어 있더라고요........

이후 연산에서 오류가 있는 부분도 a[3][2]가 잘못 계산되면서 생기는 파생적인 오류였습니다. 도저히 왜 a[2][3]이 2가 아니라 1이 되는지 모르겠습니다... 제발 도와주세요.......

lyun135   2년 전

bigger을 전역 변수로 선언하면서 생긴 문제였습니다... 왜 여태까지 이걸 생각 못했는지 모르겠네요...

댓글을 작성하려면 로그인해야 합니다.