KE 3 - größter gemeinsamer Teiler
Hallo,
in KE 3 soll man eine Übungsaufgabe zum ggt (Euklid) erstellen.
Die Lösung ist folgende:
Ich Frage mich nur, ob die Hilfsvariablen und das vertauschen überhaupt notwendig sind?
Reicht nachstehender Code nicht auch aus?
Hallo,
in KE 3 soll man eine Übungsaufgabe zum ggt (Euklid) erstellen.
Die Lösung ist folgende:
public int gcd(int a, int b) // wir gehen davon aus,
{ // dass a, b > 0
int m = a; //Schritt 1: setze m=a, und n=b
int n= b;
int r; // Hilfsvariable
do {
if (m < n) // Schritt 2: falls m < n
{
r = m; // vertausche m und n
m = n;
n = r;
}
r = m - n; // Schritt 3: berechne r
m = n; // Schritt 4: setze m und n
n = r;
} while ( r != 0); // Schritt 5: weiter mit Schritt 2
return m; // beende das Verfahren, m liefert
} // den ggt von a und b
Ich Frage mich nur, ob die Hilfsvariablen und das vertauschen überhaupt notwendig sind?
Reicht nachstehender Code nicht auch aus?
while ( a != b )
{
if ( a > b )
{
a -= b;
}
else if ( a < b )
{
b -= a;
}
}
return a;