2011-06-01 128 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