2

だから、私は BrainFuck でこのプログラムを手書きしました:

+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.

そして、それは私が欲しかったものを正確に表示します:

HELLO WORLD

HELLO WORLDしかし、 5 回続けて表示したかったので、ループでラップしました。

+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
<<<<<<<<<<<-]

私はそれがこの出力を持つことを期待していました:

HELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLD

しかし、代わりにこれを表示しています:

HELLO WORLDŠ˜˜ž@®ž¤˜ˆØÏääí`íöäÌ 00<€\<H0hY||‹ ³‹š|T

ループで何が間違っていますか? HELLO WORLD期待どおりに 5 回連続して表示されないのはなぜですか?

4

1 に答える 1

6

「HELLO WORLD」をループしているのではなく、それを作成するコードをループしています...

[-]<を使用して戻るときにすべてをゼロにするオプションは2つあります。これは、配列要素を初期状態に戻すため、現在のコードで機能し、コードを再実行すると同じ値になります。 、つまり:

http://ideone.com/GjAp8

+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]
<-]

またはこれを使用します(配列を入力するときに配列を印刷しないでください。作成されるまで待ってから実行してください)

http://ideone.com/iWs8X

+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++>+>++++++++>+++++++++++>-->++>+++++++++++>++++++++++++++>++++++++>
<<<<<<<<<<
 +++++[>.>.>..>.>.>.>.>.>.>.<<<<<<<<<<-]
于 2011-10-23T09:16:15.013 に答える