Mathematics

import java.util.Vector;

public class Mathematic {

public static void main(String[] args) {

String input1 = "9223372036854775807";

Mathematic notation1 = new Mathematic(input1);

notation1.toString();

String input2 = "10000000000000000000";

Mathematic notation2 = new Mathematic(input2);

notation2.toString();

}

private boolean direct = false;

private Vector vertex = new Vector();

private int name;

private boolean readOnly = false;

int vertices = 1;

private boolean debug = false;

public Mathematic() {

}

public Mathematic(String input) {

int length = input.length();

System.out.println("[" + length + "] = " + input);

int[] number = new int[length];

for (int i = 0; i < length; i++) {

Character ch = new Character(input.charAt(i));

number[i] = new Integer(ch.toString()).intValue();

}

for (int i = 0; i < number.length; i++) {

vertex.add(number[i]);

}

}

public Mathematic(int[] intArray) {

for (int i = 0; i < intArray.length; i++) {

vertex.add(intArray[i]);

}

}

public Vector asReadOnlyBuffer() {

vertex.add(getArray());

return vertex;

}

public Vector compact() {

vertex.removeAllElements();

return vertex;

}

public Vector duplicate() {

vertex.add(getArray());

return vertex;

}

public int get() {

return ((Integer) vertex.get(0)).intValue();

}

public int get(int index) {

return ((Integer) vertex.get(index)).intValue();

}

public int[] getArray() {

int[] array = new int[vertex.size()];

for (int i = 0; i < array.length; i++) {

int value = ((Integer) vertex.get(i)).intValue();

if (debug) {

System.out.println("[" + i + "] " + value);

}

array[i] = value;

}

return array;

}

public int getName() {

return name;

}

public int getVertices() {

return vertices;

}

public boolean isDirect() {

return direct;

}

public boolean isReadOnly() {

return readOnly;

}

public Vector order() {

return vertex;

}

public Vector put(int f) {

vertex.add(f);

return vertex;

}

/**

* Insert element into buffer

*

* @param index

* @param f

* @return

*/

public Vector put(int index, float f) {

Vector vbuffer = new Vector();

for (int i = 0; i < vertex.size(); i++) {

if (i == index) {

vbuffer.add(f);

}

vbuffer.add(vertex.get(i));

}

vertex = vbuffer;

return vertex;

}

public void setName(int name) {

this.name = name;

}

public void setVertices(int vertices) {

this.vertices = vertices;

}

public int size() {

return vertex.size();

}

public String toString() {

int[] intArray = getArray();

int length = intArray.length;

StringBuffer numerics = new StringBuffer();

String numeric = getNumeric(length);

System.out.print("Numerical Analysis: ");

int remainder = (length - 1) % 3;

System.out.print("[");

for (int i = 0; i < length; i++) {

if (remainder == 0) {

System.out.print(intArray[i]);

numerics.append(intArray[i]);

if (i == 0) {

System.out.print(".");

numerics.append(".");

}

} else if (remainder == 1) {

System.out.print(intArray[i]);

numerics.append(intArray[i]);

if (i == 1) {

System.out.print(".");

numerics.append(".");

}

} else if (remainder == 2) {

System.out.print(intArray[i]);

numerics.append(intArray[i]);

if (i == 2) {

System.out.print(".");

numerics.append(".");

}

} else if (i < 3 && i < length) {

System.out.print(intArray[i]);

numerics.append(intArray[i]);

}

}

System.out.print("]");

System.out.println(numeric + " => [" + length + "]");

String cardinalNumber = getCardinal(numerics.toString(), numeric);

return cardinalNumber;

}

public String getCardinal(String numeric, String cardinalNumber) {

if (numeric.indexOf(".") != -1) {

if (numeric.length() > 4) {

numeric = numeric.substring(0, numeric.indexOf('.') + 4)

+ cardinalNumber;

} else {

numeric = numeric + cardinalNumber;

}

System.out.println("=> " + numeric);

} else {

System.out.println("=> " + numeric);

}

return numeric;

}

public String getCardinalNumeric(int length) {

String numeric = new String();

if (length > 100) {

if (length == 3) {

numeric += " hundreds";

} else if (length <= 6) {

numeric += " thousands";

} else if (length <= 9) {

numeric += " millions";

} else if (length <= 12) {

numeric += " billions";

} else if (length <= 15) {

numeric += " trillions";

} else if (length <= 18) {

numeric += " quadrillion";

} else if (length <= 21) {

numeric += " quitillion";

} else if (length <= 24) {

numeric += " sextillion";

} else if (length <= 27) {

numeric += " septillion";

} else if (length <= 30) {

numeric += " octillion";

} else if (length <= 33) {

numeric += " novillion";

} else if (length <= 36) {

numeric += " decillion";

} else if (length <= 39) {

numeric += "undecillion";

} else if (length <= 42) {

numeric += "dodecillion ";

} else if (length <= 45) {

numeric += " tredecillion ";

} else if (length <= 48) {

numeric += " quattuordecillion ";

} else if (length <= 51) {

numeric += " quindecillion ";

} else if (length <= 54) {

numeric += " sexdecillion ";

} else if (length <= 57) {

numeric += " septendecillion ";

} else if (length <= 60) {

numeric += " octodecillion ";

} else if (length <= 63) {

numeric += " novemdecillion ";

} else if (length <= 66) {

numeric += " vigintillion ";

} else if (length <= 69) {

numeric += " unvigintillion ";

} else if (length <= 72) {

numeric += " dovigintillion ";

} else if (length <= 75) {

numeric += " trevigintillion ";

} else if (length <= 78) {

numeric += " quattuorvigintillion ";

} else if (length <= 81) {

numeric += " quinvigintillion ";

} else if (length <= 84) {

numeric += " sexvigintillion ";

} else if (length <= 87) {

numeric += "septenvigintillion ";

} else if (length <= 90) {

numeric += " octovigintillion ";

} else if (length <= 93) {

numeric += " novemvigintillion ";

} else if (length <= 96) {

numeric += " trigintillion ";

} else if (length <= 99) {

numeric += " untrigintillion ";

}

}

return numeric;

}

public String getNumeric(int length) {

String numeric = new String();

if (length > 100) {

if (length <= 102) {

numeric += " dotrigintillion ";

} else if (length <= 105) {

numeric += " tretrigintillion ";

} else if (length <= 108) {

numeric += " quattuortrigintillion ";

} else if (length <= 111) {

numeric += " quintrigintillion ";

} else if (length <= 114) {

numeric += " sextrigintillion ";

} else if (length <= 117) {

numeric += " septrigintillion ";

} else if (length <= 120) {

numeric += " octotrigintillion ";

} else if (length <= 123) {

numeric += " novemtrigintillion ";

} else if (length <= 150) {

numeric += "Quadragintillion";

} else if (length <= 153) {

numeric += "Quinquagintillion";

} else if (length <= 183) {

numeric += "Sexagintillion";

} else if (length <= 213) {

numeric += "Septuagintillion";

} else if (length <= 243) {

numeric += "Octogintillion";

} else if (length <= 273) {

numeric += "Nonagintillion";

} else if (length <= 303) {

numeric += "Centillion";

} else if (length <= 306) {

numeric += "Uncentillion";

} else if (length <= 333) {

numeric += "Decicentillion";

} else if (length <= 336) {

numeric += "Undecicentillion";

} else if (length <= 363) {

numeric += "Viginticentillion";

} else if (length <= 366) {

numeric += "Unviginticentillion";

} else if (length <= 393) {

numeric += "Trigintacentillion";

} else if (length <= 423) {

numeric += "Quadragintacentillion";

} else if (length <= 453) {

numeric += "Quinquagintacentillion";

} else if (length <= 483) {

numeric += "Sexagintacentillion";

} else if (length <= 513) {

numeric += "Septuagintacentillion";

} else if (length <= 543) {

numeric += "Octogintacentillion";

} else if (length <= 573) {

numeric += "Nonagintacentillion";

} else if (length <= 603) {

numeric += "Ducentillion";

} else if (length <= 903) {

numeric += "Trecentillion";

} else if (length <= 1203) {

numeric += "Quadringentillion";

} else if (length <= 1503) {

numeric += "Quingentillion";

} else if (length <= 1803) {

numeric += "Sescentillion";

} else if (length <= 2103) {

numeric += "Septingentillion";

} else if (length <= 2403) {

numeric += "Octingentillion";

} else if (length <= 2703) {

numeric += "Nongentillion";

} else if (length <= 3003) {

numeric += "Millinillionth";

}

} else {

if (length == 1) {

} else if (length == 3) {

numeric += " hundreds";

} else if (length <= 6) {

numeric += " thousands";

} else if (length <= 9) {

numeric += " millions";

} else if (length <= 12) {

numeric += " billions";

} else if (length <= 15) {

numeric += " trillions";

} else if (length <= 18) {

numeric += " quadrillion";

} else if (length <= 21) {

numeric += " quitillion";

} else if (length <= 24) {

numeric += " sextillion";

} else if (length <= 27) {

numeric += " septillion";

} else if (length <= 30) {

numeric += " octillion";

} else if (length <= 33) {

numeric += " novillion";

} else if (length <= 36) {

numeric += " decillion";

} else if (length <= 39) {

numeric += "undecillion";

} else if (length <= 42) {

numeric += "dodecillion ";

} else if (length <= 45) {

numeric += " tredecillion ";

} else if (length <= 48) {

numeric += " quattuordecillion ";

} else if (length <= 51) {

numeric += " quindecillion ";

} else if (length <= 54) {

numeric += " sexdecillion ";

} else if (length <= 57) {

numeric += " septendecillion ";

} else if (length <= 60) {

numeric += " octodecillion ";

} else if (length <= 63) {

numeric += " novemdecillion ";

} else if (length <= 66) {

numeric += " vigintillion ";

} else if (length <= 69) {

numeric += " unvigintillion ";

} else if (length <= 72) {

numeric += " dovigintillion ";

} else if (length <= 75) {

numeric += " trevigintillion ";

} else if (length <= 78) {

numeric += " quattuorvigintillion ";

} else if (length <= 81) {

numeric += " quinvigintillion ";

} else if (length <= 84) {

numeric += " sexvigintillion ";

} else if (length <= 87) {

numeric += " septenvigintillion ";

} else if (length <= 90) {

numeric += " octovigintillion ";

} else if (length <= 93) {

numeric += " novemvigintillion ";

} else if (length <= 96) {

numeric += " trigintillion ";

} else if (length <= 99) {

numeric += " untrigintillion ";

}

}

return numeric;

}

}