4

Brainfuck で 2 桁の平均を計算する方法は?

たとえば、2桁の数字が 2 3 あり、その平均は2.5

2 8 私たちが持っている ので 5.0

これはどのように行うことができますか?

4

2 に答える 2

2

次のようなもの:

++>++++++++< this is input data
[<+>-] this adds the numbers
<[[->+<][->>+<<]] this does the calculation

アプローチは、2 つの数値の合計を均等に分配することです。均等に分散するとは、値の差が最大で 1 であることを意味します (浮動小数点数がないため、2.5 などを何らかの形で表す必要があります) 。これらの値を含む 2 つの隣接するセルができたら、それらを自由に使用してください (出力してから、各セルの数値を減らし、1 が残っている場合は ".5" を出力します)。

もちろん、上記のコードにはポインター エラーが含まれている可能性がありますが、開始とデバッグには十分なはずです。さらに、優れた効率的なソリューションが見られることを本当にうれしく思います。

于 2011-06-01T15:56:28.040 に答える
1

より良い解決策:

,>,                               //input 1 and 2
>++++++[-<--------<-------->>]<<  //decrement both by 48
[->+<]>>++<                       //add them and then put 2 in the third cell(devisor)
[                                 // ... 
>[->+>+<<]
>[-<<-
[>]>>>[<[>>>-<<<[-]]>>]<<]        //integer division (4/2 = 2, 3/2 = 1...)
>>>+ 
<<[-<<+>>] 
<<<]
>[-]>>>>[-<<<<<+>>>>>]            //...
<<<<++++++[-<++++++++>]<.         //increment 28 and print result
于 2012-08-13T15:47:45.403 に答える