2011-06-01 126 views
4

如何计算脑卒中2位数的平均值?计算2位数的平均值

我的意思是我有两个数字,例如 2 3 ,平均为2.5

2 8 我们 5.0

如何才能做到这一点?

+9

我会说,你应该告诉你到目前为止的代码,以便我们能够找出需要修复,但后来我在这种情况下,实现它可能更容易只从头开始写答案。 – Jeff 2011-06-01 15:42:09

+0

我查找了一些关于这种语言的信息,只是发现它是适当的命名。哈哈 – 2011-06-01 15:59:05

+0

@j_syk这种语言可能是最早发明的(当然,不包括Malbolge)。但它是图灵完整的,这意味着你可以在其中实现任何算法。想象一下基于它的网络应用程序框架! ;) – Sorrow 2011-06-01 16:01:27

回答

2

线沿线的东西:

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

的方法是均匀分布两个数字的总和。由均匀分布我的意思是说,值之间的差异最多为1(因为没有浮点数,你必须以某种方式代表例如2.5)。一旦你有两个相邻的单元格包含这些值,随意做任何你想要的东西(你可以输出它,然后减少每个单元格的数字,如果你留下1,然后输出“.5”)。

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

+0

由于多种原因,这不起作用。 1. [<+> - ]试图将单元格增加到初始单元格的左侧 - 不存在 2. <[[-> + <][->> + <<]]不会输入第二个嵌套循环([ - >> + <]) 3.即使这一切都'工作',它将无法处理小数 和处理我的意思是无限循环:(致命错误 – Zac 2012-08-13 15:53:58

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