안녕하세요.
재귀함수는 함수 내에서 자신을 다시 호출하는 것으로
95쪽 문제4번은 재귀함수가 아니라 단순히 사용자 정의 함수를 호출하고 반환하는 과정입니다.
main 함수에서 시작합니다.
result = res200(); 에 의해 res200 함수를 호출합니다.
res200 함수로 가서
return 200 + res30();에 의해 200에 res30() 함수를 호출하여 반환받은 값을 더해서 반환합니다.
res30 함수를 호출합니다.
res30 함수로 가서
return 30 + res10();에 의해 30에 res10() 함수를 호출하여 반환받은 값을 더해서 반환합니다.
res10 함수를 호출합니다.
res10 함수로 가서
return 4;에 의해 4를 반환합니다.
res10을 호출했던 res30의 함수로 4를 가지고 반환합니다.
return 30 + 4; res10에서 4를 반환받았으므로 res30 함수에서는 34를 반환합니다.
return 200 + 34; res30에서 34를 반환받았으므로 res200 함수에서는 234를 반환합니다.
result = 234; res200에서 234를 반환받았으므로 234를 result에 저장합니다.
234가 저장된 result의 값을 정수로 출력합니다.
오늘도 즐거운 하루 되세요.
-
*2018-05-09 09:18:31
안녕하세요.
재귀함수는 함수 내에서 자신을 다시 호출하는 것으로
95쪽 문제4번은 재귀함수가 아니라 단순히 사용자 정의 함수를 호출하고 반환하는 과정입니다.
main 함수에서 시작합니다.
result = res200(); 에 의해 res200 함수를 호출합니다.
res200 함수로 가서
return 200 + res30();에 의해 200에 res30() 함수를 호출하여 반환받은 값을 더해서 반환합니다.
res30 함수를 호출합니다.
res30 함수로 가서
return 30 + res10();에 의해 30에 res10() 함수를 호출하여 반환받은 값을 더해서 반환합니다.
res10 함수를 호출합니다.
res10 함수로 가서
return 4;에 의해 4를 반환합니다.
res10을 호출했던 res30의 함수로 4를 가지고 반환합니다.
return 30 + 4; res10에서 4를 반환받았으므로 res30 함수에서는 34를 반환합니다.
return 200 + 34; res30에서 34를 반환받았으므로 res200 함수에서는 234를 반환합니다.
result = 234; res200에서 234를 반환받았으므로 234를 result에 저장합니다.
234가 저장된 result의 값을 정수로 출력합니다.
오늘도 즐거운 하루 되세요.