← 학습 코스

숫자의 각 자리를 재귀로 더하기

Python완성형

마지막 자리와 남은 숫자를 나눠요

기저 조건과 재귀 호출을 배웠어요. 양의 정수에서 % 10은 마지막 자리, // 10은 마지막 자리를 제외한 몫이에요. //는 이 레슨의 0 이상 정수에서 나눗셈의 정수 몫을 구해요.

number = 472
last = number % 10
rest = number // 10

last는 2, rest는 47이에요. 47에도 같은 계산을 적용하면 7과 4로 나뉘어요. 0은 다시 나눌 자리가 없다는 기저 조건으로 사용할 수 있어요. 그림에서 현재 자리와 남은 숫자를 확인해요.

472를 마지막 자리 2와 남은 숫자 47로 나누고 47을 다시 7과 4로 나누는 재귀 처리

현재 자리와 나머지 문제의 결과를 합쳐요

전체 자릿수 합은 마지막 자리와 남은 숫자의 자릿수 합이에요. 472라면 2 + 자리합(47)이고, 47은 7 + 자리합(4)예요.

number 마지막 자리 다음 호출의 number
472 2 47
47 7 4
4 4 0
0 기저값 0 반환 호출 없음

기저값 0부터 4 → 11 → 13이 반환돼요. 함수의 입력은 호출마다 독립된 지역 이름이에요. 이번 편집기는 solution 함수만 작성하고, 숫자 입력과 출력은 하네스가 담당해요.

직접 풀어봐요

solution(number)를 재귀로 완성해 number의 십진수 각 자리 합을 반환해요. number = 0의 답도 0이에요.

number는 0~1000000이에요. 실행용 입력은 한 줄의 number이며 하네스가 읽어요. 출력은 함수의 반환값이에요.

예시 1: number = 472 → 13. 4 +7 +2예요. 예시 2: number = 3050 → 8. 3 +0 +5 +0예요.

예시 입력

472

예상 결과

13

예시 입력

3050

예상 결과

8
핵심 개념
  • function-design: 나머지와 정수 몫으로 한 자리와 나머지 문제를 나누고, 작은 입력의 반환값을 더해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기