100 by ksk

a=%w{twen thir fo%sr fif six seven eigh nine}
puts:zero,s="one
two
three
four
five
#{a[4,3]*$/}t
nine","ten
eleven
twelve",[a[1,7],p]*"teen
"%:u,a.map{|_|[*_%p+"ty
"+s].*_%p+"ty "},"one hundred"

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top