#include 
#include 
#include 
#include 
#include 

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int recGGT(int m, int n);

int main() {
    // 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;
    
    cout << "Geben Sie die erste Zahl an: " << endl;
    
    // Der eingegebene Wert wird an die Variable m übergeben.
    cin >> m;
    cout << "Geben Sie die zweite Zahl an:" << endl;
    
    // Der eingegebene Wert wird an die Variable n übergeben.
    cin >> n;
    
    // 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.
    cout << recGGT(m, n) << endl;
    return 0;
}

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;
}

// Im Folgenden werden Funktionen zur Typumwandlung implementiert.
string toString (double value) { //int auch
    stringstream temp;
    temp << value;
    return temp.str();
}

int toInt (string text) {
    return atoi(text.c_str());
}

double toDouble (string text) {
    return atof(text.c_str());
}
        
        
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