Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Balikkan nombor dalam C++ menggunakan tindanan

Balikkan nombor dalam C++ menggunakan tindanan

王林
王林ke hadapan
2023-09-14 12:45:021341semak imbas

Balikkan nombor dalam C++ menggunakan tindanan

Kami diberi nombor integer Num sebagai input. Matlamatnya adalah untuk mencari terbalik nombor menggunakan tindanan.

Timbunan:- Tindanan ialah struktur data dalam C++ yang menyimpan data dalam cara LIFO ( Last in First Out). Operasi utama tindanan ialah-:

Pengisytiharan-: tindanan stck; //stck kini pembolehubah tindanan.

  • Mencari Teratas menggunakan top(). Fungsi stck.top() mengembalikan rujukan elemen atas dalam stck

  • Mengalih keluar Atas menggunakan pop(). Fungsi mengalih keluar elemen paling atas daripada stck

  • Menambah elemen ke atas menggunakan push(). Fungsi stck.push( value ) menambah nilai item dalam tindanan. Nilai hendaklah daripada jenis stck.

  • Semak sama ada staxk kosong menggunakan empty(). Fungsi stck.empty() kembali benar jika tindanan kosong −

  • Mula-mula kami akan tolak semua elemen untuk disusun

7 - 6 - 2 - 3 - 3 ← atas

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

= 76233

Input 

− Nombor = 111000

Output 

− Terbalikan nombor ialah: 111

rancangan

tolak semua elemen untuk disusun

0 - 0 - 0 - 1 - 1 - 1 ← atas

0 * 100000 + 0 * 10000 + 0*1000 + 1*100 + 1*10 + 1*1 ←

= 0 + 0 + 0 + 1000 + 100 = 111

Pendekatan yang digunakan dalam program di bawah adalah seperti berikutDalam pendekatan ini kita akan mula-mula mengambil baki nombor input dan tolak ke tindanan dan kurangkan nombor sebanyak 10 sehingga nombor menjadi 0. Dengan cara ini tindanan akan diisi dengan atas sebagai digit pertama.

Ambil nombor input Num.

Ambil tindanan kosong untuk integer menggunakan tindanan stck.

Fungsi pushDigts(int num1) mengambil num1 dan menambahkannya ke tindanan dengan digit pertama di atas.

Ambil rem sebagai pembolehubah.

    Menggunakan gelung sementara, bukan nombor sifar. jika benar maka tetapkan rem=num1%10.
  • Tolak rem untuk tindanan.
  • Kurangkan num1 sebanyak 10 untuk digit ke-2 dan seterusnya.
  • Sekarang terbalikkan nombor dengan menggunakan elemen revrseN ).
  • Ambil pemboleh ubah revrs, topp, temp, i.
  • Sementara tindanan tidak kosong
  • Ambil elemen paling atas sebagai topp=stck.top().
  • Tindankan semula stck.pop() terbalikkan nombor input sebagai revrs.
  • Cetak hasil yang diperolehi di dalam utama.成以下输出
  • #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;
    }

Atas ialah kandungan terperinci Balikkan nombor dalam C++ menggunakan tindanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam