[Q&A] C언어 | 재귀함수(필독)

Поделиться
HTML-код
  • Опубликовано: 1 окт 2024
  • 약간 새로운 유형의 재귀함수 문제입니다.
    꼭 개념을 알아주시면 좋겠습니다.
    감사합니다. ^^
    #흥달 #흥달쌤 #정처기 #정보처리 #정보처리기사 #정보처리기출 #JAVA #C언어 #전산직 #계리직 #프로그래밍 #기출문제풀이

Комментарии • 13

  • @김광식-z5l
    @김광식-z5l Год назад +1

    안녕하세요 저는 아무리해도 1123 이라고 출력문이 나오는데 어떻게해야할까요 .... n이 1234라는건 알겠지만 계산식이 호출인거니까.... 너무헷갈려요

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~~
      지금 출력결과를 보면 계산을 한 값을 출력하는 형태인데요.
      계산된 결과를 출력하는게 아닌 n 값을 출력하게 됩니다.
      지금 print 문에 보면, printf("%d", n); 을 출력하록 했습니다.
      하나씩 돌려보면,
      먼저 n 은 4 인자값을 받습니다.
      그리고 if 를 만나서 참이 됩니다.
      그럼 아래를 더이상 수행하지 못하고 바로 fn 으로 넘어가게 됩니다.
      헌데 아래 보면 n 값을 출력하라고 했기 때문에, 현재 인자로 넘어온 값 4를 스택에 쌓아줍니다.
      그리고 n은 3 인자값을 받고 이것도 마찬가지로 아래를 수행하지 못하고 3을 스택에 쌓아줍니다.
      2도 마찬가지로 스택에 쌓게 됩니다.
      그럼 현재 스택에는
      2
      3
      4
      가 쌓여 있습니다.
      마지막으로 1을 가지고 호출을 하게 되고, 이건 조건에 만족하지 않아서 fn 은 더이상 호출하지 않습니다.
      그리고 그 다음문장 출력을 하게 되니 1을 출력하게 됩니다.
      그 이후에 스택에 쌓여있는 값들을 처리해야 합니다.
      가장 먼저 나오는건 2-1이 아니라, n 값을 출력하라고 했기 때문에, 2를 그대로 출력하고, 그다음 3, 그다음 4가 나와서 출력이 됩니다.
      n-1 계산결과가 아닌, 현재 상태에서의 n 값을 출력하기 때문에, 1,2,3,4 가 출력이 되게 됩니다.
      도움이 되셨으면 좋겠습니다.
      감사합니다. ^^

  • @nicenicely9978
    @nicenicely9978 Год назад +1

    질문받으시고 매번 영상 찍어주시는거 쉬운일이 아닌데 정말감사합니다 ...

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~
      아무래도 말로 설명하면 이해하는게 너무 힘드실 듯 해서,
      그런것들은 영상으로 남기는거지요~~^^
      수강해주셔서 감사합니다.

  • @정승화-m1y
    @정승화-m1y Год назад

    좋은 강의 항상 감사드리며 수강하고 있습니다. ^^

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      수강해주셔서 감사합니다. ^^
      궁금한건 언제든 질문주세요~~

  • @compang468
    @compang468 Год назад

    선생님! 매번 유튜브 영상으로 도움을 받고 있습니다 늘 너무 감사합니다!!
    이번 영상에 궁금한게 있는데요!!
    마지막 n =1 일 때 if 에서 else 가 없는데 마지막 print가 진행이 되는게 어떻게 진행이 되는걸까요??

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~~
      if 구문은,
      단순 if 문도 있고, if~else 구조도 있고, if~else if~else 구문 도 있습니다.
      지금 문제는 단순 if 이고, if 블럭이 끝나게 되면 그 이후에 있는 문장들이 수행되어야 합니다.
      if 에서 계속 제어권을 넘기는 구조이고, 마지막 상수가 넘어오게 되면 그때부터는 if 를 태우지 않고, 그 아래 있는 print 를 수행하게 됩니다.
      감사합니다. ^^

    • @compang468
      @compang468 Год назад

      @@HeungSsaem 감사합니다!!!
      늘 정처기 공부하는데 너무 많은 도움이 되고 있습니다

  • @human8008
    @human8008 Год назад

    감사합니다!

    • @HeungSsaem
      @HeungSsaem  Год назад

      수강해주셔서 감사합니다. ^^

  • @mind-extender
    @mind-extender Год назад

    재귀 함수 문제 많이 풀어봤다고 넘어가려고 했었는데 안 봤으면 큰일날 뻔 했네요. 선생님 덕분에 재귀함수에 대해서 더 깊게 이해하고 갑니다. 감사합니다. :)

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      요 형태는 조금 새로운 형태이지요~~^^
      이런 유형의 문제들이 나오면 꼭 필독을 달도록 하겠습니다.
      감사합니다. ^^