So habe ich ein kleines Problem mit einem negativen Anteil reduziertVerringerung der negativen Fraktion
Dies ist mein reduzieren Code
private void reduce() {
int g = Helper.gcd(this.num, this.den);
num /= g;
den /= g;
}
Zum Beispiel: 8/64 gibt 1/8
Aber geben -8/64 Lassen Sie uns das Programmabsturz
das ist mein gcd Code
public static int gcd(int a, int b) {
while (a != b) {
if (a > b) {
a -= b;
} else {
b -= a;
}
}
return a;
}
Nur als Randnotiz: solcher Code ist wirklich ** perfekt ** für Komponententests. Das hat den großen Vorteil, dass Sie direkt in den Debugger springen, falls einer Ihrer Tests fehlschlägt. – GhostCat
Ein weiteres kleines Ding: a und b sind ziemlich schlechte Namen für Variablen. Gib deinen Dingen Namen, die sagen, was sie sind. – GhostCat