GGT.java
package ch.hslu.exercises.sw01.ex1;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class GGT {
private GGT() {
}
private static final Logger LOG = LoggerFactory.getLogger(GGT.class);
@SuppressWarnings({"FinalParameters", "ReassignedVariable"})
public static int ggtIterativ1(int a, int b) {
while (a != b) {
LOG.info("ggtIterativ1 Schleifendurchlauf");
if (a > b) {
a = a - b;
} else {
b = b - a;
}
}
return a;
}
@SuppressWarnings({"FinalParameters", "ReassignedVariable"})
public static int ggtIterativ2(int a, int b) {
while ((a != 0) && (b != 0)) {
LOG.info("ggtIterativ2 Schleifendurchlauf");
if (a > b) {
a = a % b;
} else {
b = b % a;
}
}
return (a + b); // Entweder a oder b ist 0!
}
public static int ggtRekursiv(final int a, final int b) {
LOG.info("ggtRekursiv Aufruf");
if (a > b) {
return ggtRekursiv(a - b, b);
} else {
if (a < b) {
return ggtRekursiv(a, b - a);
} else {
return a;
}
}
}
}