sum_digits¶
Given a non-negative int n
, return the sum of its digits recursively (no loops). Note that mod (%
) by 10
yields the rightmost digit (126 % 10
is 6
), while integer divide (//
) by 10
removes the rightmost digit (126 // 10
is 12
).
sum_digits(126) -> 9
sum_digits(49) -> 13
sum_digits(12) -> 3
This exercise was taken from codingbat.com and has been adapted for the Python language. There are many great programming exercises there, but the majority are created for Java.
Starter Code¶
def sum_digits(n: int) -> int:
pass
result = sum_digits(126)
print(result)
Tests¶
from main import sum_digits
def test_sum_digits_1():
assert sum_digits(126) == 9
def test_sum_digits_2():
assert sum_digits(49) == 13
def test_sum_digits_3():
assert sum_digits(12) == 3
def test_sum_digits_4():
assert sum_digits(10) == 1
def test_sum_digits_5():
assert sum_digits(1) == 1
def test_sum_digits_6():
assert sum_digits(0) == 0
def test_sum_digits_7():
assert sum_digits(730) == 10
def test_sum_digits_8():
assert sum_digits(1111) == 4
def test_sum_digits_9():
assert sum_digits(11111) == 5
def test_sum_digits_10():
assert sum_digits(10110) == 3
def test_sum_digits_11():
assert sum_digits(235) == 10