登録計算機チャレンジ
簡単なレジスタ計算機 この課題には、次のように機能する単純なレジスタ計算機が含まれます。 には、という名前のレジスタがいくつかありA,B,C,...,Z、それぞれに整数を含めることができ、それらはすべてに初期化され0ます。 3文字の命令を実行します:命令の最初の文字は+,-,*,/,=(加算、減算、複数、除算、コピー)の1つであり、2番目の文字はレジスタの名前であり、3番目の文字はレジスタまたは1つの名前ですの0,1。指示の意味は非常に明確である必要があります。ここではいくつかの例を示します。 +ABは、「レジスタの値をA結果に設定する」ことを意味し、A + Bについても同様です-AB,*AB,/AB。分割A / BはCのように行われます。 +A1は「のレジスタAをインクリメントする」ことを意味し1、同様に-A1デクリメントAし1ます。 =AB手段「は、の値をコピーBレジスタにA同様=A0、=A1セットAに0、1それぞれ。 連続した命令の文字列を入力として受け取り、最後の操作の結果を返します。いくつかの例を示します。 =A1+A1*AA返されると仮定します4。 +A1+A1=BA+A1*AB返されると仮定します6。 +A1+A1+A1*AA=BA-B1*AB返されると仮定します72。 好みのプログラミング言語でこのような電卓を書くのは簡単です。ここではPythonの例を示します。 def compute(cmd): opr = {"=": lambda x, y: y, "+": lambda x, y: x + y, "-": lambda x, y: x - y, "*": lambda x, y: x * y, "/": lambda x, y: …