\section{Java} \lstset{language=Java} \subsection{Introduction} \begin{itemize} \item Compilen: \lstinline{javac main.java} \item Ausführen: \lstinline{java main < sample.in} \item Eingabe: \lstinline{Scanner} ist sehr langsam. Bei großen Eingaben muss ein Buffered Reader verwendet werden. \begin{lstlisting} Scanner in = new Scanner(System.in); // java.util.Scanner String line = in.nextLine(); // Liest die nächste Zeile. int num = in.nextInt(); // Liest das nächste Token als int. double num2 = in.nextDouble(); // Liest das nächste Token als double. \end{lstlisting} \item Ausgabe: \begin{lstlisting} // Ausgabe in StringBuilder schreiben und am Ende alles auf einmal ausgeben. -> Viel schneller. StringBuilder sb = new StringBuilder(); // java.lang.StringBuilder sb.append("Hallo Welt"); System.out.print(sb.toString()); \end{lstlisting} \end{itemize} \subsection{BigInteger} \begin{lstlisting} // Berechnet this +,*,/,- val. BigInteger add(BigInteger val), multiply(BigInteger val), divide(BigInteger val), substract(BigInteger val) // Berechnet this^e. BigInteger pow(BigInteger e) // Bit-Operationen. BigInteger and(BigInteger val), or(BigInteger val), xor(BigInteger val), not(), shiftLeft(int n), shiftRight(int n) // Berechnet den ggT von abs(this) und abs(val). BigInteger gcd(BigInteger val) // Berechnet this mod m, this^-1 mod m, this^e mod m. BigInteger mod(BigInteger m), modInverse(BigInteger m), modPow(BigInteger e, BigInteger m) // Berechnet die nächste Zahl, die größer und wahrscheinlich prim ist. BigInteger nextProbablePrime() // Berechnet int/long/float/double-Wert. Ist die Zahl zu großen werden die niedrigsten Bits konvertiert. int intValue(), long longValue(), float floatValue(), double doubleValue() \end{lstlisting} \lstset{language=C++}