整数 Num が入力として与えられます。目標は、stack を使用して数値の逆数を見つけることです。
Stack:- スタックは、LIFO (後入れ先出し) 方式でデータを格納する C のデータ構造です。スタックの主な操作は次のとおりです。-:
宣言-: stack
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
関数 PushDigts(int num1) は num1 を受け取り、最初の桁を上にしてスタックに追加します。
rem を変数として受け取ります。
while ループを使用して、num1 がゼロ以外であるかどうかを確認し、true の場合は rem=num1 を設定します。
rem をスタックにプッシュします。
num1 を 2 桁目などで 10 ずつ減らします。
関数 revrseNum() を使用して、スタックの要素を使用して数値を反転します。
#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 サイトの他の関連記事を参照してください。