1

重複の可能性:
BrainFuck で 2 つの数値の合計を計算する方法

2 つの 1 桁の数字を加算する単純な BF プログラムの書き方を知っている人はいますか? 私はこの言語に慣れていないので、概念を理解するために助けが必要です。

4

1 に答える 1

6

それぞれ 0 から 9 の値を持つ 2 つのセルがある場合は、一方を他方に追加するだけです。A と B の 2 つのセルがあるとします。A は位置 0 にあり、B は位置 1 にあります。このように B を A に追加できます (ポインターが A から始まると仮定します)。A を 4 に、B を 8 に設定し、B を A に追加します。

setting A and B
++++>++++++++

remember the pointer is at B now so we can add B to A like this
[<+>-]
and now the pointer is still at B but B contains 0 and A contains 12

ユーザーに 1 桁の数字を入力させたい場合は、, 文字を使用すると、その文字の ASCII コードが現在のセルに入力されることに注意してください。したがって、最初に数値から 48 を引く必要があります (48 は文字「0」の ASCII コードです)。A と B にキーボードからの 2 文字を入力する例を次に示します (ユーザーは数字キーのみを押し、文字や記号は押さないと仮定します)

Pointer starts at A so we have the user press a number key
,

we then subtract 48 from it so that it contains the actual value
------------------------------------------------

we move to B and do the same
>,------------------------------------------------

from here on it's the same as the last example
[<+>-]
于 2012-11-30T13:58:24.137 に答える