Create mappings for numbers less than 20 and for tens.
Define a function that converts numbers less than 1000 to words.
Handle numbers in groups of three digits, appending the appropriate scale (Thousand, Million, Billion) after each group.
For each group, if the number is less than 20, use the direct mapping. If the number is between 20 and 99, split into tens and ones. If the number is between 100 and 999, handle the hundreds place, then recursively handle the tens and ones.
Combine the words for each group, inserting 'and' as appropriate, to form the final English words representation.