Maison > développement back-end > C++ > Inverser un nombre en C++ en utilisant la pile

Inverser un nombre en C++ en utilisant la pile

王林
Libérer: 2023-09-14 12:45:02
avant
1413 Les gens l'ont consulté

Inverser un nombre en C++ en utilisant la pile

Nous recevons un nombre entier Num en entrée. Le but est de trouver l'inverse du nombre à l'aide de la pile.

Stack : - Une pile est une structure de données en C++ qui stocke les données de manière LIFO (Last in First Out). Les principales opérations de la pile sont :

Déclaration- : pile bâton; //stck est maintenant une variable de pile.

  • Trouver Top en utilisant top(). La fonction stck.top() renvoie la référence de l'élément supérieur dans le stck

  • Removing Top en utilisant pop(). La fonction supprime l'élément le plus haut du stck

  • Ajout d'un élément en haut à l'aide de push(). La fonction stck.push( value ) ajoute la valeur de l'élément dans la pile. La valeur doit être de type stck.

  • Vérifiez si staxk est vide en utilisant empty(). La fonction stck.empty() renvoie true si la pile est vide.

Exemples

Entrée − Num = 33267

Sortie − L'inverse du nombre est : 76233

Explication

Premier nous va poussez tous les éléments pour empiler

7 - 6 - 2 - 3 - 3 ← top

7 * 10000 + 6 * 1000 + 2*100 + 3*10 + 3*1 ←

= 70000 + 6000 + 200 + 30 + 3 ←

= 76233

Entrée − Num = 111000

Sortie − L'inverse du nombre est : 111

Explication

Nous allons d'abord pousser tous les éléments à empiler

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

L'approche utilisée dans le programme ci-dessous est la suivante

Dans cette approche, nous allons d'abord prendre les restes du nombre saisi et pousser pour empiler et réduire le nombre de 10 jusqu'à ce que le nombre devienne 0. De cette façon, la pile sera remplie de en haut comme premier chiffre.

  • Prenez le numéro d'entrée Num.

  • Prenez la pile vide pour les entiers en utilisant stack stck.

  • La fonction pushDigts (int num1) prend num1 et l'ajoute à la pile avec le premier chiffre en haut.

  • Prenez rem comme variable.

  • À l'aide d'une boucle while, vérifiez si num1 est différent de zéro, si c'est vrai, définissez rem=num1%10.

  • Poussez rem pour empiler.

  • Réduisez num1 de 10 pour le 2ème chiffre et ainsi de suite.

  • Maintenant, inversez le nombre en utilisant les éléments de la pile avec la fonction revrseNum ( ).

  • Prenez les variables revrs, topp, temp, i.

  • Pendant que la pile n'est pas vide

  • Prenez l'élément le plus haut comme topp=stck.top().

  • Réduisez la pile en utilisant stck.pop().

  • Définissez temp=topp*i.

  • Ajoutez la température aux revrs.

  • Augmentez i de i*10 par multiples de 100.

  • À la fin, renvoyez le inverse du numéro d'entrée en tant que revrs.以下输出

    #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;
    }
    Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal