Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

I'm tired

Name: Anonymous 2009-05-14 1:34

Post some boring code so I can go to sleep.

Name: Anonymous 2009-05-14 5:24

Load up in a full screen terminal and enjoy yourself.
import java.math.BigInteger;
import java.util.TimerTask;
import java.util.Timer;
public class CountSheep extends TimerTask {
    private static java.math.BigInteger num = java.math.BigInteger.ONE;
    private static String[] mantissa = {"zero",     "one",     "two",     "three",     "four",     "five",   "six",
                                       "seven",    "eight",   "nine",    "ten",       "eleven",   "twelve", "thirteen",
                                      "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
    private static String[] exponent = {"", "thousand", "million", "billion", "trillion", "quadrillion",
                                     "quintillion", "sexillion", "septillion", "octillion", "nonillion", "decillion",
                                     "undecillion", "duodecillion", "tredecillion","quattuordecillion", "quindecillion", "sexdecillion",
                                     "septdecillion", "octodecillion", "novemdecillion", "vigintillion", "unvigintillion", "duovigintillion",
                                     "trevigintillion", "quattuorvigintillion", "quinvigintillion", "sexvigintillion", "septvigintillion", "octovigintillion",
                                     "novemvigintillion", "trigintillion", "untrigintillion", "duotrigintillion", "tretrigintillion", "quattuortrigintillion",
                                     "quintrigintillion", "sextrigintillion", "septtrigintillion", "octotrigintillion", "novemtrigintillion", "quadragintillion",
                                     "unquadragintillion", "duoquadragintillion", "trequadragintillion", "quattuorquadragintillion", "quinquadragintillion", "sexquadragintillion",
                                     "septquadragintillion", "octoquadragintillion", "novemquadragintillion", "quinquagintillion", "unquinquagintillion", "duoquinquagintillion",
                                     "trequinquagintillion", "quattuorquinquagintillion", "quinquinquagintillion", "sexquinquagintillion", "septquinquagintillion",
                                     "octoquinquagintillion",
                                     "novemquinquagintillion", "sexagintillion", "unsexagintillion", "duosexagintillion", "tresexagintillion", "quattuorsexagintillion",
                                     "quinsexagintillion", "sexsexagintillion", "septsexagintillion", "octosexagintillion", "novemsexagintillion", "septuagintillion",
                                     "unseptuagintillion", "duoseptuagintillion", "treseptuagintillion", "quattuorseptuagintillion", "quinseptuagintillion", "sexseptuagintillion",
                                     "septseptuagintillion", "octoseptuagintillion", "novemseptuagintillion", "octogintillion", "unoctogintillion", "duooctogintillion",
                                     "treoctogintillion", "quattuoroctogintillion", "quinoctogintillion", "sexoctogintillion", "septoctogintillion", "octooctogintillion",
                                     "novemoctogintillion", "nonagintillion", "unnonagintillion", "duononagintillion", "trenonagintillion", "quattuornonagintillion",
                                     "quinnonagintillion", "sexnonagintillion", "septnonagintillion", "octononagintillion", "novemnonagintillion", "centillion"};
    private static String[] tens = {"twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
    private static String bigIntToEnglish(BigInteger b) {
        StringBuilder s = new StringBuilder();
        for(int i=0; i<exponent.length; i++) {
            BigInteger n = BigInteger.valueOf(1000).pow(i);
            if(n.compareTo(b)>0) {
                n = BigInteger.valueOf(1000).pow(i-1);
                BigInteger m = b.divide(n);
                BigInteger r = b.subtract(m.multiply(n));
                int a = m.intValue() / 100;
                int c = m.intValue() % 100;
                if(a>0) {
                    s.append(mantissa[a]+" hundred");
                    if(c>0) s.append(" and ");
                }
                if(c>0) {
                    if(c<20) s.append(mantissa[c]);
                    else for(int j=0; j<tens.length; j++) {
                        if(30 + 10*j > c) {
                            s.append(tens[j]);
                            if(c%10!=0) s.append(" "+mantissa[c%10]);
                            break;
                        }
                    }
                }
                s.append(" "+exponent[i-1]);
                if(!r.equals(BigInteger.ZERO)) s.append(" "+bigIntToEnglish(r));
                return s.toString();
            }
        }
        return "Overflow";
    }   
    public void run() {
        String s = bigIntToEnglish(num);
        System.out.println(Character.toUpperCase(s.charAt(0))+s.substring(1)+"sheep.");
        num = num.add(BigInteger.ONE);
    }
    public static void main(String[] args) {
        new Timer().scheduleAtFixedRate(new CountSheep(),0,100);
    }
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List