마지막 자리와 남은 숫자를 나눠요
기저 조건과 재귀 호출을 배웠어요. 양의 정수에서 % 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)예요.
| 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: 나머지와 정수 몫으로 한 자리와 나머지 문제를 나누고, 작은 입력의 반환값을 더해요.