>>>>>>-[[->>>+<<<]------>>>-]<<<[<<<]+[+[>>>]<<<->+[<[+>-]>[-<<<<->+>>------>>]<<<<]>>-[<<<].>>>-]
正確に印刷するもの
298333629248008269731638612618517353495058861384016275770860733328251135402804732197446995616017112134460464130233444058136509123809012106419446593183683387659250431692751255099808162970657410517657862174602556590616568690423540284801267472920128909691902547970614008613488242333460665145840144517097342073878746293059960326132795671583153307437896728515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
250255
このBrainfuckの回答ではクレジットが@hvdに渡されるため、必ず彼に賛成してください!
説明:
私は自分自身の説明を書くつもりでしたが、@hvdの説明がすでに重要であることに気づいたので、代わりにここで引用します:
>>>>>>
少しの作業スペースを残すために必要です。
-
255を生成します(セルをラッピングするとき0-1 = 255であるため)。
[[->>>+<<<]------>>>-]
これを値250の255個のコピーに変換し、次のようなテープを作成します。
0 0 0 0 0 0 250 0 0 250 0 0 ... 250 0 0 [0]
<<<[<<<]+
データポインターを戻し、初期データを終了します。
0 0 0 [1] 0 0 250 0 0 250 0 0 ...
次にループが発生します。[+...-]
最初は1を2に設定し、ループの最後で1に戻します。ループ本体がすでに2を1に設定すると、ループは終了します。
現在、2 250 250 250 ... 250という数字は、ベース250のカウンターを表しており、各数字はそれが表す数字よりも1つ大きくなっています。
[>>>]<<<
ずっと右に移動します。各数字はゼロ以外の数字で表されるため、これは簡単です。
->+[<[+>-]>[-<<<<->+>>------>>]<<<<]>>-
カウンターを1減らします。最後の桁から開始します:桁が減ります。肯定的なままであれば、完了です。ゼロになったら、250に設定し、前の数字で続行します。
[<<<].>>>
ポインターを左端の数字の前に戻します。これは、NULバイトを出力する良い機会です。次に、左端の桁に正確に移動して、完了したかどうかを確認します。
正確性を確認するには、250 2に対して250 1 NULバイトを印刷-
する+
ようにイニシャルを変更します。++
+[.]
勝ちますか?:P