책 내용 질문하기
91쪽 예제4
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
91
조회수
112
작성일
2019-05-03
작성자
탈퇴*원
첨부파일

설명좀 부탁드릴게요..

1을 리턴하는 것 까지는 알겠는데 왜 숫자를 1씩 증가시켜서 5 * 24가 되는거죠? 

답변
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 반환이 되는 것이죠. 

 

행복한 하루되세요 :)

  • 관리자
    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 반환이 되는 것이죠. 

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.