如何用brainfuck计算2位数的平均值?
我的意思是我有两位数的例子
2 3
其平均值为2.5
有
2 8
我们有
5.0
如何做到这一点?
答案 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