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