책 내용 질문하기
기출 2017년6월 정보처리산업기사
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
35
조회수
251
작성일
2019-08-23
작성자
탈퇴*원
첨부파일
35쪽에 문제4번이요 굳이 factorial(n) 이렇게 하지 않고 n × factorial(n-1)을 하는 이유가 뭔가요? 어차피 1×2×3...×n 이잖아요
답변
2019-08-23 13:45:59

안녕하세요 길벗수험서 운영팀입니다.

 

return n*factorial(n-1) 대신 factorial(n)을 말씀하시는 것이라면, 아무 숫자나 넣어보고 디버깅을 하는 것으로도 간단히 어떤 결과가 나오는지 알 수 있습니다.

 

예를 들어 문제와 같이 main함수에서 factorial(5)를 호출하게 된다면,

 

if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고,

if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고, 

if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고, 

.....

 

이렇게 무한반복하게되겠죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-08-23 13:45:59

    안녕하세요 길벗수험서 운영팀입니다.

     

    return n*factorial(n-1) 대신 factorial(n)을 말씀하시는 것이라면, 아무 숫자나 넣어보고 디버깅을 하는 것으로도 간단히 어떤 결과가 나오는지 알 수 있습니다.

     

    예를 들어 문제와 같이 main함수에서 factorial(5)를 호출하게 된다면,

     

    if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고,

    if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고, 

    if문에서 n은 5를 받아 5<=1이 거짓이니 return factorial(5)를 통해 factorial(5)를 다시 호출할 것이고, 

    .....

     

    이렇게 무한반복하게되겠죠.

     

    행복한 하루되세요 :)

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