<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/** This class contains static methods used to
  anglicize integers in the range 1..999,999.
  Method anglicize contains solution */
public class Anglicize {
    
    /** = English equivalent of n.
      Precondition: 0 &lt; n &lt; 1,000,000.
      Examples:
      3:      "three"
      45:     "forty five"
      100:    "one hundred"
      127:    "one hunded twenty seven"
      1001:   "one thousand one"
      999099: "nine hundred ninety thousand ninety nine*/
    public static String anglicize(int n) {
        if (n &lt; 20) {
            return ang1(n);
        }
        
        // n &gt;= 20
        if (n &lt; 100) {
            return   tens(n/10) + (n%10 == 0 ? "" : " " +  ang1(n%10)) ;
        }
        
        // n &gt;= 100
        if (n &lt; 1000) {
            return ang1(n/100) + " hundred" + (n%100 == 0 ? "" : " " + anglicize(n%100));
        }
        
        // n &gt;= 1000
        return anglicize(n/1000) + " thousand" + (n%1000 == 0 ? "" : " " + anglicize(n%1000));
    } 
    
    /** = english equiv of n.
      Precondition: n in 1..19 */
    public static String ang1(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";
        
    }
    
    /** = tens-word for n (in 2..9) */
    public static String tens(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";  
    }
}
</pre></body></html>