0

元の文字列または int 値と比較できるように、スタックからポップされた文字または整数を格納する方法を知りたいです。

例えば ​​:

n = 1221;
n = n / 1000; // so that i get the last digit in this case 1 and dividing the remainder 
              // further each time by 100, 10 and 1

取得した各数値を変数に格納する場合、たとえば、上記の除算で取得した 1 を s という名前の変数に格納し、スタックにプッシュするとします。この後、値を元に戻します。その場合、天気が元の数​​値と同じであることを確認するにはどうすればよいですか? if 条件で確認できます。

(i == p && check for other two numbers)

しかし、サイズ番号を確認したくありません。

その方法についてソース コードを送らないでください。いくつかのスニペットまたはいくつかのヒントを教えてください。よろしくお願いします。また、解決に至った経緯も教えてください。

ありがとう!

4

2 に答える 2

2

その方法についてソースコードを送らないでください

わかった ;)

いくつかのスニペットまたはいくつかのヒントを教えてください

再帰

そして、あなたが解決策を提供している間、あなたがどのようにして解決策を思いついたのか、このようなプログラムを見たことがあるか、アルゴリズムを知っているか、質問を見たときに解決策を思いついたかを教えてください. ありがとう

あまりにも長くやっていたので、最初に見た場所を覚えていません =\

于 2012-08-21T22:49:44.257 に答える
0

ジャスティンが述べたように、再帰を使用して問題を解決できます。再帰を開始すると、数値を適切な除数 (1000,100,10,1) で割り、商をスタックに格納します。これを最後まで行います。「単位」の場所に到達したら、単位の数字を保存し、スタックから飛び出し始めます。再帰関数から整数を返す if-else はしごを用意します。ラダーは、左シフト後にintを返し、シフトした変数を返すという条件になります。メイン関数でチェックを行うことができます。

1             ->1221(left shift 122 OR with 1)
  2          ->122(left shift 12 OR with 2)
    2       ->12(left shift 1 OR with 2)
      1---->1

お役に立てれば。ありがとうアディティア

于 2012-08-22T00:38:52.723 に答える