설명좀 부탁드릴게요..
1을 리턴하는 것 까지는 알겠는데 왜 숫자를 1씩 증가시켜서 5 * 24가 되는거죠?
안녕하세요 길벗수험서 운영팀입니다.
-1로 호출했기 때문입니다.
처음 factorial(5)가 호출되었을 때,
5 * factorial(4) 로 호출 factorial(4)는
4 * factorial(3) 으로 호출 factorial(3)은
3 * factorial(2) 로 호출 factorial(2)는
2 * factorial(1) 로 호출 factorial(1)은
return 1을 만나 1을 반환하죠. 이제 호출된 위치로 돌아가면
factorial(2)로 돌아가 2 * factorial(1)는 2*1이 되어 2 반환
factorial(3)으로 돌아가 3 * factorial(2)는 3*2가 되어 6 반환
factorial(4)로 돌아가 4 * factorial(3)는 4*6이 되어 24 반환
factorial(5)로 돌아가 5 * factorial(4)는 5*24가 되어 120 반환이 되는 것이죠.
행복한 하루되세요 :)
-
관리자2019-05-07 10:30:05
안녕하세요 길벗수험서 운영팀입니다.
-1로 호출했기 때문입니다.
처음 factorial(5)가 호출되었을 때,
5 * factorial(4) 로 호출 factorial(4)는
4 * factorial(3) 으로 호출 factorial(3)은
3 * factorial(2) 로 호출 factorial(2)는
2 * factorial(1) 로 호출 factorial(1)은
return 1을 만나 1을 반환하죠. 이제 호출된 위치로 돌아가면
factorial(2)로 돌아가 2 * factorial(1)는 2*1이 되어 2 반환
factorial(3)으로 돌아가 3 * factorial(2)는 3*2가 되어 6 반환
factorial(4)로 돌아가 4 * factorial(3)는 4*6이 되어 24 반환
factorial(5)로 돌아가 5 * factorial(4)는 5*24가 되어 120 반환이 되는 것이죠.
행복한 하루되세요 :)