Heim  >  Artikel  >  Backend-Entwicklung  >  Kehren Sie eine Zahl in C++ mithilfe des Stapels um

Kehren Sie eine Zahl in C++ mithilfe des Stapels um

王林
王林nach vorne
2023-09-14 12:45:021341Durchsuche

Kehren Sie eine Zahl in C++ mithilfe des Stapels um

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 stck; //stck ist jetzt eine Stapelvariable.

Top mit

top()
    finden. Die Funktion stck.top() gibt die Referenz des obersten Elements im stck zurück. Entfernen von Top mit
  • pop()

    . Die Funktion entfernt das oberste Element aus dem Stapel.

  • Hinzufügen eines Elements nach oben mit
  • push()

    . Die Funktion stck.push(value) fügt den Elementwert im Stapel hinzu. Der Wert sollte vom Typ stck sein.

  • Überprüfen Sie mit
  • empty()

    , 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

  • 7 * 10000 + 6 * 1000 + 2*100 + 3*10 + 3*1 ←
  • = 70000 + 6000 + 200 + 30 + 3 ←= 76233

Eingabe 

− Num = 111000

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 stck.

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. ).

Nehmen Sie die Variablen revrs, topp, temp, i.

    Während der Stapel nicht leer ist
  • Nehmen Sie das oberste Element als topp=stck.top().
  • Stack reduzieren mit stck.pop().
  • Set temp=topp*i.
  • Temp to revrs hinzufügen.
  • I um i*10 in Vielfachen von 100 erhöhen.
  • Am Ende die zurückgeben Umkehrung der Eingabenummer als Umdrehungen成以下输出
  • #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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen