计算2位数的平均值

时间:2011-06-01 15:38:01

标签: brainfuck

如何用brainfuck计算2位数的平均值?

我的意思是我有两位数的例子 2 3 其平均值为2.5

2 8 我们有 5.0

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

有些事情:

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

方法是均匀分配两个数字的总和。通过均匀分布我的意思是值之间的差异最多为1(因为没有浮点数,你必须以某种方式表示例如2.5)。一旦你有两个包含这些值的相邻单元格,随意用它们做任何你想做的事情(你可以输出它,然后减少每个单元格中的数字,如果剩下1,则输出“.5”)。 / p>

当然,上面的代码可能有指针错误,但它应该足以启动和调试。此外,我很高兴看到一个好的,有效的解决方案。

答案 1 :(得分: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