input: Write a python function to convert a number to words.
  assert number_to_words(123) == "One Hundred Twenty Three"
  assert number_to_words(45) == "Forty Five"
  assert number_to_words(0) == "Zero"
  assert number_to_words(999) == "Nine Hundred Ninety Nine"
output: def number_to_words(n):
      if n == 0:
          return "Zero"
  
      ones = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
      teens = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"]
      tens = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
  
      def word_1_to_99(num):
          if num < 10:
              return ones[num]
          elif num < 20:
              return teens[num - 10]
          else:
              return tens[num // 10] + ('' if num % 10 == 0 else ' ' + ones[num % 10])
  
      def word_1_to_999(num):
          if num < 100:
              return word_1_to_99(num)
          else:
              return ones[num // 100] + " Hundred" + ('' if num % 100 == 0 else ' ' + word_1_to_99(num % 100))
  
      return word_1_to_999(n)