<p>Is there an efficient method of converting an integer into the written numbers, for example:</p>

<pre><code>string Written = IntegerToWritten(21);
</code></pre>

<p>would return "Twenty One".</p>

<p>Is there any way of doing this that doesn't involve a massive look-up table?</p>

why massive lookup table?
```
```
string GetWrittenInteger(int n)
{
  string[] a = new string[] {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" }
  string[] b = new string[] { "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" }
  string[] c = new string[] {"Twenty", "Thirty", "Forty", "Sixty", "Seventy", "Eighty", "Ninety"};
  string[] d = new string[] {"Hundred", "Thousand", "Million"}
  string s = n.ToString();

  for (int i = 0; i < s.Length; i++)
  {
    // logic (too lazy but you get the idea)
  }
}
```
```