0 Daumen
707 Aufrufe

Programmieren Sie in C zwei Funktionen zur Berechnung des ggT zweier natürlicher Zahlen m und n.  Ihrer Funktionensoll eine einen der Ihnen bekannten Schleifentypen (for, while, do-while) nutzen, während die andere Funktion rekursiv arbeitet. Lagern Sie ihren beiden Funktionen in C-Unterfunktionen aus und nutzen Sie die main-Funktion, um bei Benutzung die Eingabe der gewünschten Zahlen zu erlauben und Ihre beiden Funktionen nacheinander auszuführen.

Avatar von

1 Antwort

0 Daumen

Hallo Susanne,

die Schleifenvariante könnte so lauten

int ggt_loop(int m, int n)
{
  while( m > 0 )
  {
      int tmp = n % m;
      n = m;
      m = tmp;
  }
  return n;
}


die rekursive Variante ist (bekanntermaßen!)

int ggt_rek(int m, int n)
{
  return m == 0 ? n : ggt_rek( n%m, m);
}


... und wenn Du den Dozenten verwirren möchtest, empfehle ich noch die Schleifen-Variante, die ohne eine zusätzliche Variable auskommt ;-)

int ggt_fun(int m, int n)
{
  for(; m > 0; n -= m)
      m = ((n%=m)+=m) - m;
  return n;
}

Gruß Werner

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community