5

DC で、スタックの一番上から数値をポップして破棄するにはどうすればよいですか? アイテムが 3 つあるスタック ( 1 2 3) は、アイテムが 2 つあるスタック ( 2 3) になります。現在、私は数字を別のスタック (Sz) に押し込んでいますが、それはかなり不自由なようです。

4

1 に答える 1

5

スタックの一番上を削除する方法は多数ありますが、副作用があります。副作用のない要素を削除するには、含まれている副作用を回避する必要があります。

副作用なしでスタックのトップを削除するには、トップが数値であることを確認してから を実行しd!=zます。スタックに [5] があった場合、これは次のことを行います

  1. 削除するアイテムから始めます。Stack: [5]
  2. スタックのトップを複製します。Stack: [5,5]
  3. 上位 2 つをポップし、それらが等しくないかどうかをテストします。5 != 5 Stack: []
  4. テストに合格した場合 (できません)、実行しますz Stack: []

スタックの一番上が数値であることを確認するためにZ、文字列の長さまたは数値の桁数を計算し、それをプッシュバックする which を使用します。X などの他のオプションがあります。何でも数値にするものは何でも機能するので、!= と互換性があります。

したがって、すべての状況でのコピー貼り付けの完全な答えは次のとおりです。

Zd!=r

私は通常、これをレジスタ D (Drop 用) に貼り付けます。

[Zd!=r]sD

そして、私は走ることができます

lDx
于 2015-04-17T03:37:00.150 に答える