U E D R , A S I H C RSS

Ugly Numbers/이동현

UglyNumbers

.
( ) .( 0.1 '4' ..)
n 2 3 5 1
n 2,3,5 .

10 44314690598262522787512975360
.. .

~cpp 
/*
 * Created on 2005. 3. 30
 */
/**
 * @author   01 
 */
import java.util.*;
import java.math.*;

public class UglyNumbers {
    public ArrayList arr;
    /**
     * n arr    .
     * @param n double 
     * @return int  1: -1:   1:  
     */
    public int insert(double n) {
        for (int i = 0; i < arr.size(); i++) {
            if (((Double) arr.get(i)).doubleValue() > n) {
                arr.add(i, new Double(n));
                return 1;
            } else if (((Double) arr.get(i)).doubleValue() == n)
                return -1;
        }
        arr.add(new Double(n));
        return 0;
    }

    public int start() {
        int index = 1;
        arr = new ArrayList();
        arr.add(new Double(1.0));
        while (index != 1500) {
            insert(((Double) arr.get(0)).doubleValue() * 2.0);
            insert(((Double) arr.get(0)).doubleValue() * 3.0);
            insert(((Double) arr.get(0)).doubleValue() * 5.0);
            arr.remove(0);
            index++;
        }
        System.out.println("The 1500'th ugly number is "+new BigDecimal(((Double)arr.get(0)).doubleValue()));// + " " + arr.size());
        return 0;
    }

    public static void main(String[] args) {
        UglyNumbers ug = new UglyNumbers();
        ug.start();
    }
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:20
Processing time 0.0107 sec