#include
#include
#include
#include
#include
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int main() {
// Das nachfolgende Programm dreht eine Zahl um. Das bedeutet, die Ziffernreihenfolge der entsprechenden Zahl wird umgedreht. Zum Beispiel 123 wird zu 321.
int zahl;
// Die Variable restModulo ist eine Hilfsvariable, die den sogenannten Rest, der sich bei der Modulo Rechnung ergibt, zwischenspeichert.
int restModulo;
// Die Variable reverse enthält am Schluss die gedrehte Zahl. Und während der Berechnung werden hier die Zwischenergebnisse gespeichert.
int reverse;
// Die Variable reverse wird mit Wert 0 initialsiert.
reverse = 0;
cout << "Geben Sie ein Zahl ein die umgedreht werden soll: " << endl;
cin >> zahl;
while (zahl >= 1) {
// Um die letzte Stelle einer Zahl im Dezimalsystem zu bestimmen, kann die Modulo Funktion verwendet werden. Dazu wird die Funktion in der folgenden Form auf die Zahl angewendet, Zahl mod 10, das Ergebnis, dass man hierbei erhält, entspricht der letzten Stelle der Zahl.
restModulo = zahl % 10;
// Der bisherige Wert der Variablen reverse wird mit dem Faktor 10 multipliziert, dadurch ist die letzte Stelle des Ergebnisses immer eine Null. Anschließend wird das Ergebnis der vorangegangen Modulo Rechnung dazuaddiert.
reverse = reverse * 10 + restModulo;
// Im letzten Schritt wird die Variable zahl durch 10 geteilt, wobei es sich um Teilen ohne Rest handelt, das bedeutet der Rest, der bei der Teilung möglicherweise entsteht, abgeschnitten wird. Zum Beispiel 23 : 10 ist 2 Rest 3 und der Rest wird abschnitten, sodass als Ergebnis hier nur die 2 bleibt.
zahl = (int) ((double) zahl / 10);
}
cout << "Die gedrehte Zahl: " << endl;
cout << reverse << endl;
return 0;
}
// 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());
}