Als Eingabe erhalten wir eine Ganzzahl Num. Das Ziel besteht darin, mithilfe des Stapels die Umkehrung der Zahl zu finden. Die wichtigsten Operationen des Stapels sind:
Declaration-: stack
Top mit
top(). Die Funktion entfernt das oberste Element aus dem Stapel.
. Die Funktion stck.push(value) fügt den Elementwert im Stapel hinzu. Der Wert sollte vom Typ stck sein.
, ob staxk leer ist. Die Funktion stck.empty() gibt „true“ zurück, wenn der Stapel leer ist wird Alle Elemente in den Stapel schieben7 - 6 - 2 - 3 - 3 ← oben
= 70000 + 6000 + 200 + 30 + 3 ←= 76233
Ausgabe − Umkehrung der Zahl ist: 111
Erklärung −
Zuerst werden wir alle Elemente auf den Stapel schieben 0 - 0 - 0 - 1 - 1 - 1 ← top
0 * 100000 + 0 * 10000 + 0*1000 + 1*100 + 1*10 + 1*1 ←
= 0 + 0 + 0 + 100 + 10 + 1 ←
= 111
Der im folgenden Programm verwendete Ansatz ist wie folgt:
Bei diesem Ansatz nehmen wir zunächst die Reste der eingegebenen Zahl und schieben sie auf den Stapel und reduzieren die Zahl um 10, bis die Zahl 0 wird. Auf diese Weise wird der Stapel mit gefüllt oben als erste Ziffer.
Nehmen Sie die eingegebene Zahl Num.
Nehmen Sie einen leeren Stapel für Ganzzahlen mit stack
Funktion pushDigts(int num1) nimmt num1 und fügt sie dem Stapel mit der ersten Ziffer oben hinzu.
Nimm rem als Variable.
Überprüfen Sie mithilfe einer While-Schleife, ob num1 ungleich Null ist. Wenn wahr, dann rem=num1%10 setzen. ).
#include <bits/stdc++.h> using namespace std; stack <int> stck; void pushDigts(int num1){ int rem; while (num1 > 0){ rem=num1 % 10; stck.push(rem); num1 = num1 / 10; } } int revrseNum(){ int revrs = 0; int i = 1; int temp; int topp; while (!stck.empty()){ topp=stck.top(); stck.pop(); temp=topp*i; revrs = revrs + temp; i *= 10; } return revrs; } int main(){ int Num = 43556; pushDigts(Num); cout<<"Reverse of number is: "<<revrseNum(); return 0; }
Das obige ist der detaillierte Inhalt vonKehren Sie eine Zahl in C++ mithilfe des Stapels um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!