Mathematic.java - iPhone - Pico Compiler - jdk 1.9

// iPhone - Pico Compiler - jdk 1.9

// Basic mathematics in java

//

import java.util.Vector;

public class Mathematic {

public static void main(String[] args) {

double a = 1.5;

double b = 5.123;

double c = -10;

System.out.println("a = " + a);

System.out.println("b = " + b);

System.out.println("c = " + c);

double r = Math.max(a, b);

System.out.println("max(a,b) = "+r);

r = Math.min(a, b);

System.out.println("min(a,b) = "+r);

r = Math.pow(a, b);

System.out.println("a^b = "+r);

r = Math.sqrt(a);

System.out.println("√a = "+r);

r = Math.round(a);

System.out.println("round(a) ="+r);

r = Math.floor(1.7);

System.out.println("floor(a) ="+r);

r = Math.ceil(1.7);

System.out.println("ceil(a) ="+r);

r = Math.abs(c);

System.out.println("|c| = "+r);

r = Math.random();

System.out.println("random number :"+r);

System.out.println("a = π/6");

a = Math.PI/6.0;

r = Math.sin(a);

System.out.println("sin(a) = "+r);

r = Math.cos(a);

System.out.println("cos(a) = "+r);

r = Math.tan(a);

System.out.println("tan(a) = "+r);

r = 1.0 / Math.tan(a);

System.out.println("cotan(a) ="+r);

String input1 = "4321987654321";

Mathematic notation1 = new Mathematic(input1);

notation1.toString();

String input2 = "3217549879854654325464654265654216356654123459885549879876546549876546543216546546542501321651546";

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 getGoogleNumeric(int length) {

String numeric = new String();

if (length > 100) {

if (length <= 199) {

numeric = " google";

} else if (length <= 200) {

numeric = " billi-google";

} else if (length <= 300) {

numeric = " trilli-google";

} else if (length <= 400) {

numeric = " quad-google";

} else if (length <= 500) {

numeric = " quint-google";

} else if (length <= 600) {

numeric = " six-google";

} else if (length <= 700) {

numeric = " sept-google";

} else if (length <= 800) {

numeric = " oct-google";

} else if (length <= 900) {

numeric = " nov-google";

} else if (length <= 1000) {

numeric = " deci-google";

}

}

return numeric;

}

public String getNumeric(int length) {

String numeric = new String();

if (length > 100) {

numeric = getGoogleNumeric(length);

} 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 ";

} else 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 ";

}

}

return numeric;

}

}