Print Digits in Words

Print digits of a number in words recursively.

Logic BuildingIntermediate
Logic Building
def print_digit_word(digit):
    words = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
    return words[digit]

def digits_in_words(n):
    # Base case
    if n == 0:
        return
    
    # Recursive case
    digits_in_words(n // 10)
    digit = n % 10
    print(print_digit_word(digit), end=" ")

# Test
num = int(input("Enter a number: "))
digits_in_words(abs(num))
print()

Output

Enter a number: 123
One Two Three

Recurse first, then print current digit.

Key Concepts:

  • Recurse on remaining digits first
  • Print current digit word after recursion
  • Processes digits left to right