给定一个任意长的数字,我该如何输出它的双数?只要结果<10,我就知道如何将小数加在一起,但是像32984335这样的较大整数怎么样,加倍这样的东西呢?我不知道处理这样的事情的正确方法。
答案 0 :(得分:5)
这是您需要实施的算法:
所有这些步骤都由basic brainfuck idioms组成,因此应该很容易实现。
答案 1 :(得分:0)
这是一个开始。它将乘以一个字节的输入,但我认为你可以建立它以使其适用于任何数字。基本上,你接受一个数字,并将数字存储在下一个指针中乘以(2)。你循环递减第一个数字,然后嵌套一个循环递减第二个数字;在内部循环的每次迭代中,将指针递增到第二个操作数的右侧。这是你的结果。
, take input to ptr 0
[
- decrement first operand (input)
>++ number to multiply by (2) at ptr 1
[
>+ result in ptr 2
<- decrement second operand (2)
]
<
]
>> move to result
答案 2 :(得分:0)
这是我的BF代码:http://ideone.com/2Y9pk8
->>+>,+
[
-----------
[
-->++++++[-<------>]<
[->+<[->+<[->+<[->+<[>----<-<+>[->+<]]]]]]>
[-<++>]<+
>,+
[
-----------
[->+<]
]
>[-<+>]<
]
<[<]
>-[<++++++++[->++++++<]>.[-]]
>[<++++++++[->++++++<]>-.[-]>]
++++++++++.[-]
<+[-<+]
->>+>,+
]
它读取每行中的每个数字直到EOF,并将所有数字乘以2 ..
答案 3 :(得分:0)
以下是将数字乘以2的代码。
,[&GT; ++&LT; - ]&GT;
希望这有帮助。