#include 
#include 
#include 
#include 
#include 

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int recGGTEuklid(int a, int b);

int main() {
    // Das Programm berechnet den größten gemeinsamen Teiler zweier Zahlen A und B, ggT(A, B), rekursiv nach dem Verfahren von Euklid.
    // Für die erste Zahl wird die Variable A deklariert.
    int a;
    
    // Für die zweite Zahl wird die Variable B deklariert.
    int b;
    
    // Die Variable resultat wird für das Ergebnis deklariert.
    int resultat;
    
    cout << "Dieses Programm berechnet den größten gemeinsamen Teiler von zwei Zahlen mithilfe des Verfahrens von Euklid." << endl;
    cout << "Geben Sie die erste Zahl an: " << endl;
    
    // Der eingegebene Wert der ersten Zahl wird in der Variablen A gespeichert.
    cin >> a;
    cout << "Geben Sie die zweite Zahl an:" << endl;
    
    // Der eingegebene Wert wird in der Variablen B gespeichert.
    cin >> b;
    
    // Innerhalb der Funktion recGGTEuklid wird der größte gemeinsame Teiler der zwei Zahlen a und b nach dem Verfahren von Euklid rekursiv berechnet.
    resultat = recGGTEuklid(a, b);
    cout << resultat << endl;
    return 0;
}

int recGGTEuklid(int a, int b) {
    // In der Funktion wird eine zweite Variable mit der Bezeichnung resultat deklariert. Da es hierbei um eine lokale Variable handelt, gibt es keinen Konflikt mit der anderen Variable, die die gleiche Bezeichnung trägt.
    int resultat;
    
    // Bevor die Berechnung beginnt, wird geprüft, ob die Variable a 0 ist. Im Fall, dass die Variable null ist, ist das Ergebnis die andere Zahl b. Ist a ungleich null, wird die Funktion recGGTEuklid mit vertauschten und angepassten Argumenten recGGTEuklid(b MOD a, a) aufgerufen.
    if (a == 0) {
        resultat = b;
    } else {
        resultat = recGGTEuklid(b % a, a);
    }
    
    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