首頁  >  文章  >  後端開發  >  使用堆疊在C++中反轉一個數字

使用堆疊在C++中反轉一個數字

王林
王林轉載
2023-09-14 12:45:021382瀏覽

使用堆疊在C++中反轉一個數字

我們得到一個整數 Num 作為輸入。目標是使用堆疊找到數字的倒數。

Stack:- 堆疊是 C 語言中的一種資料結構,它以 LIFO(後進先出)方式儲存資料。堆疊的主要操作有-:

宣告-:stack ;持續; //stck 現在是一個堆疊變數。

  • 使用 top() 來尋找頂部。函數 stck.top() 傳回 stck 中頂部元素的參考

  • 使用 pop() 刪除頂部。函數從 stck 中刪除最上面的元素

  • #使用 push() 將元素新增到頂部。函數 stck.push( value ) 將項目值加入堆疊中。值應為 stck 類型。

  • ##使用

    empty() 檢查 staxk 是否為空。如果堆疊為空,函數stck.empty() 回傳true。

範例

輸入 − Num = 33267

輸出− 數字的逆序為:76233

解釋

首先我們將所有元素壓入堆疊

7 - 6 - 2 - 3 - 3 ← 頂部

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

= 70000 6000 200 30 3# ←## = 76233

輸入

− Num = 111000

輸出

− 數字的反轉為:111

#解釋

首先我們將所有元素壓入堆疊

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

#下面程式中使用的方法如下

在這個方法中,我們首先將輸入數字的餘數壓入堆疊,並將數字減少10,直到數字變為0。這樣堆疊將填充頂部作為第一位數字。

取得輸入數字 Num.
  • 使用 stack 為整數取得空堆疊; stck.
  • 函數pushDigts(int num1)接受num1並將其添加到堆疊中,第一個數字在頂部。
  • ##將rem 為變數。

  • 使用while 迴圈檢查num1 是否非零,如果為true,則設定rem=num1 。

  • 將rem 壓入堆疊。

  • 將num1 減少10 作為第二個數字,依此類推。

  • 現在使用函數 revrseNum() 使用堆疊元素反轉數字。

  • ##取變數revrs,topp,temp,i。

  • 當堆疊不為空時

  • #取最上面的元素為topp=stck.top().

  • #Reduce stack using stck.pop().

  • Set temp= topp*i.

  • 將溫度加到轉速。

  • 以100 的倍數將i 增加i*10 。

  • 最後傳回輸入num的反轉作為revrs。

  • 列印main中獲得的結果。

  • 範例

    #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;
    }

    輸出
如果我們上面的程式碼,將會產生以下運行輸出

Reverse of number is: 65534

以上是使用堆疊在C++中反轉一個數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除