ホームページ  >  記事  >  バックエンド開発  >  C++ でスタックを使用して数値を反転する

C++ でスタックを使用して数値を反転する

王林
王林転載
2023-09-14 12:45:021382ブラウズ

C++ でスタックを使用して数値を反転する

整数 Num が入力として与えられます。目標は、stack を使用して数値の逆数を見つけることです。

Stack:- スタックは、LIFO (後入れ先出し) 方式でデータを格納する C のデータ構造です。スタックの主な操作は次のとおりです。-:

宣言-: 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

入力 - 数値 = 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

以下のプログラムで使用されるアプローチは次のとおりです

このアプローチでは、まず入力数値の残りを取得してスタックにプッシュし、数値が 0 になるまで数値を 10 ずつ減らします。このようにして、スタックは最初の桁として先頭で埋められます。

  • 入力数値 Num を取得します。

  • stack を使用して整数の空のスタックを取得します。 stck.

  • 関数 PushDigts(int num1) は num1 を受け取り、最初の桁を上にしてスタックに追加します。

  • rem を変数として受け取ります。

  • while ループを使用して、num1 がゼロ以外であるかどうかを確認し、true の場合は rem=num1 を設定します。

  • rem をスタックにプッシュします。

  • num1 を 2 桁目などで 10 ずつ減らします。

  • 関数 revrseNum() を使用して、スタックの要素を使用して数値を反転します。

  • #変数 revrs、topp、temp、i を取得します。

  • ##スタックが空でない間に
  • 最上位の要素を topp=stck.top() として取得します。
  • stck.pop() を使用してスタックを削減します。
  • Set temp= topp*i.
  • temp を revrs に追加します。
  • i を 100 の倍数で i*10 ずつ増やします。
  • 最後に、入力した数値の逆数を 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。