using System;

public class MyProgram
{
    public static void Main(string[] args)
    {
        // Im folgenden Programm soll der größte gemeinsame Teiler (kurz ggT) von zwei Zahl n und m berechnet werden.
        // Für die erste Zahl wird die Variable m deklariert.
        int m;
        
        // Für die zweite Zahl wird die Variable n deklaiert.
        int n;
        
        Console.WriteLine("Geben Sie die erste Zahl an: ");
        
        // Der eingegebene Wert wird an die Variable m übergeben.
        m = (int) inputValue();
        Console.WriteLine("Geben Sie die zweite Zahl an:");
        
        // Der eingegebene Wert wird an die Variable n übergeben.
        n = (int) inputValue();
        
        // Die Funktion recGGT wird mit den Zahlen n und m als Argument aufgerufen und liefert als Ergebnis den größten gemeinsamen Teiler der beiden Zahlen zurück.
        Console.WriteLine(RecGGT(m, n));
    }
    
    public static int RecGGT(int m, int n)
    {
        // Die Funktion recGGT berechnet den größten gemeinsamen Teiler zweier Zahlen. Die zwei Zahlen wurden der Funktion bereits als Argument übergeben.
        // Die Variable r ist eine Hilfsvariable, die für die spätere Berechnung benötigt wird.
        int r;
        
        // Das Ergebnis der Berechnung wird am Ende in der Variablen resultat gespeichert.
        int resultat;
        
        // Nun wird geprüft, ob die zweite Zahl m kleiner als die erste Zahl n ist, falls ja, wird die Berechnung gestartet und im Fall das m größer ist, wird die Funktion recGGT mit vertauschten Argumenten, also recGGT(n, m) aufgerufen.
        if (m < n)
        {
            resultat = RecGGT(n, m);
        }
        r = m % n;
        
        // Solange die Variable r ungleich 0 ist, wird die Funktion recGGT(n, r) aufgerufen. Im Fall, dass die Variable r gleich 0 ist, ist die Berechnung beendet. Und das Ergebnis wird in der Variablen resultat gespeichert.
        if (r == 0)
        {
            resultat = n;
        }
        else
        {
            resultat = RecGGT(n, r);
        }
        
        return resultat;
    }
    
    // .NET kann nur einzelne Zeichen oder ganze Zeilen aus der  Konsole lesen. 
    // Die folgende Funktion löst das Problem.
    private static double inputValue()
    {
        double result;
        while (!double.TryParse(Console.ReadLine(), out result));
        return result;
    }
}
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz