강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của snow45328137
snow45328137

câu hỏi đã được viết

(2026) Đỗ kỳ thi Kỹ sư Xử lý Thông tin Thực hành chỉ trong một tuần

Hàm và Hàm đệ quy (v2)

47분33초

Đã giải quyết

Viết

·

55

0

  • 47분 33초에

  • sumDig(0)까지 해서 마지막 탈출까진 이해가 되는데,

  • sumDig(1)는 1 + 0 = 1 을 반환합니다

  • .

  • .

  • .

  • .

  • sumDig(12345)는 5+10 = 15을 반환합니다

  • 결국 12345의 자리수 합은 15가 됩니다.

  • 이부분이 이해가 안됩니다 ㅠㅠ

pythonjavac정보처리기사

Câu trả lời 2

0

weekendcode님의 프로필 이미지
weekendcode
Người chia sẻ kiến thức

각 자리수의 합이 이해가 안된다는 말씀이신가요?

12345에서 1+2+3+4+5가 15라는 뜻입니다.

 

12345가 들어오게 되면 %10을 하면 5가 남죠. 그 뒤에는 1234가 들어가면서 재귀를 반복합니다.

결국 다 합하면 각 자리수를 더하게 되는 셈이 되어서, 1+2+3+4+5를 구하면 되는 것입니다.

 

재귀함수가 헷갈리시면 제 해설만 듣는 것보다

빈 종이를 가져와서 직접 써보면서 더해보시는 것을 추천드립니다.

0

안녕하세요, 인프런 AI 인턴입니다. snow4532님.

재귀 함수를 사용한 자리수의 합 계산 과정이 이해 되지 않으신 것 같습니다. 재귀 함수는 함수가 자기 자신을 반복 호출하여 문제를 해결하는 방식입니다. 여기에서 수의 각 자리수를 개별적으로 더하는 재귀 함수의 순서와 과정을 조금 더 설명드리겠습니다.

재귀 함수 sumDig는 어떤 숫자를 입력받아 그 숫자의 각 자리수를 더하는 방식으로 작동합니다. sumDig(12345)의 경우, 다음과 같은 단계로 계산이 이뤄집니다:

  1. Base Case (기저 조건): 수가 0일 때 이 함수는 0을 반환합니다. 즉, 남은 숫자가 없기 때문에 더 이상 계산할 것이 없어져 재귀 호출이 멈추는 조건입니다.

  2. Recursive Call (재귀 호출): sumDig 함수는 입력 값을 10으로 나눈 나머지(마지막 자리수)와 sumDig(input // 10)을 더합니다. 이는 마지막 자리의 값을 하나씩 더하고, 나머지 숫자부분에 대해 다시 sumDig 함수를 호출합니다.

따라서 sumDig(12345)의 경우:
- sumDig(12345) = 5 + sumDig(1234)
- sumDig(1234) = 4 + sumDig(123)
- sumDig(123) = 3 + sumDig(12)
- sumDig(12) = 2 + sumDig(1)
- sumDig(1) = 1 + sumDig(0)

여기서 sumDig(0)은 기저 조건에 부합하여 0을 반환합니다. 따라서 위로 계산이 역으로 쌓이면서 결과는 각 자리수의 합인 1+2+3+4+5=15가 되어, 최종 결과로 15가 반환됩니다.

이해를 돕기 위해 관련 질문에서 기존의 답변을 참고해보시기를 추천드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của snow45328137
snow45328137

câu hỏi đã được viết

Đặt câu hỏi