Feedback

größten gemeinsamen Teiler berechnen.

Sprache: C#

Berechnet den größten gemeinsamen Teiler zweier Zahlen.
public static int ggT( int n, int m )
{
  return n == m ? n : n<m ? ggT( n, m-n ) : ggT( n-m, m );
}
public static int ggT( int n, int m )
{
  return n == m ? n : n<m ? ggT( n, m-n ) : ggT( n-m, m );
}

3 Kommentare

  1. Sieht wirklich gut aus, aber nicht universell. In einem ungünstigen Fall bekommt man „stack overflow exception“. Beispiel: 10 und 10000000. 😉

  2. ich habe folgenden Code dafür benutzt.
    Und damit ich garantiert ein ergebnis bekomme, habe ich dafür gesorg, dass bei einem negativen Zähler in einem Bruch der Zähler in der Funktion einmal mit -1 multipliziert wird.
    Sonst hängt er sich auf
    [code] public int ggT(int a, int b)
    {
    int functionReturnValue = 0;
    if (a < 0) { a = a * (-1); } while (b > 0)
    {
    functionReturnValue = a % b;
    a = b;
    b = functionReturnValue;
    }
    return a;
    }[/code]