/** Functions used in anglicizing an integere */
public class Ang {
  
    
    /** = anglicization of n. Pre: 0 < n < 1,000,000 */
    public static String ang(int n) {
        if (n < 20) {
            return ang19(n);
        }
        
        // { 20 <= n < 1,000,000 } */
        if (n < 100) {
            return tensWord(n/10) + 
                (n%10 == 0 ? "" : " " + ang19(n%10));
        }
        
        // {100 <= n < 1,000,000 }
        if (n < 1000) {
            return ang19(n/100) + " hundred" +
                (n%100 == 0 ? "" : " " + ang(n%100));
        }
        // { 1000 <= n < 1,000,000 }
        return  ang(n/1000) + " thousand" +
                (n%1000 == 0 ? "" : " " + ang(n%1000));

    }
    
    /** = "tens word for digit n, 2 <= n <= 9 */
    public static String tensWord(int n) {
        if (n == 2) return "twenty";
        if (n == 3) return "thirty";
        if (n == 4) return "forty";
        if (n == 5) return "fifty";
        if (n == 6) return "sixty";
        if (n == 7) return "seventy";
        if (n == 8) return "eighty";
        return "ninety";
    }
    
    /** =  anglicization of n. Pre: 0 < n <= 19.*/
    public static String ang19(int n) {
        if (n == 1) return "one";
        if (n == 2) return "two";
        if (n == 3) return "three";
        if (n == 4) return "four";
        if (n == 5) return "five";
        if (n == 6) return "six";
        if (n == 7) return "seven";
        if (n == 8) return "eight";
        if (n == 9) return "nine";
        if (n == 10) return "ten";
        if (n == 11) return "eleven";
        if (n == 12) return "twelve";
        if (n == 13) return "thirteen";
        if (n == 14) return "fourteen";
        if (n == 15) return "fifteen";
        if (n == 16) return "sixteen";
        if (n == 17) return "seventeen";
        if (n == 18) return "eighteen";
        return "nineteen";
    }

    

}