如何用brainfuck计算2位数的平均值?
我的意思是我有两位数,例如
2 3
,它的平均值是2.5
因为
2 8
我们有
5.0
如何才能做到这一点?
类似于以下内容:
++>++++++++< this is input data
[<+>-] this adds the numbers
<[[->+<][->>+<<]] this does the calculation
方法是平均分配两个数字的总和。通过均匀分布,我的意思是值之间的差异最多为 1(因为没有浮点数,您必须以某种方式表示例如 2.5)。一旦你有两个包含这些值的相邻单元格,你可以随意对它们做任何你想做的事情(你可以输出它,然后减少每个单元格的数字,如果你剩下 1,那么输出“.5”给它)。
当然,上面的代码可能有指针错误,但应该足够启动和调试了。此外,我真的很高兴看到一个好的、有效的解决方案。
更好的解决方案:
,>, //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