在brainfuck

时间:2016-12-19 18:05:58

标签: brainfuck

是否有一种有效的算法可以确定两个数字之和,即使这些数字大于10?

2 个答案:

答案 0 :(得分:1)

用户一次只能输入一位数字。假设只能输入正数,则解析它的算法如下:

initialize accumulator to 0
for each digit the user enters
    multiply the accumulator by 10
    add the new digit to the accumulator

当用户输入回车键以完成输入数字时,您将需要处理,并且上述算法仅适用于最多255的数字(假设8位单元格)。

从那时起你就有了一个带号码的单元格。再次执行此操作以获取具有其他编号的单元格,然后您可以将它们正常添加到一起。

答案 1 :(得分:0)

使用http://fatiherikli.github.io/brainfuck-visualizer/,您可以用数字方式查看每个单元格的值,而不必使用所有那些愚蠢的ASCII转换内容。然后,只需在输入和算法中编程。

++++++>+++++ 6 plus 5
[<+>-]

添加1到6,每次迭代从5中减去1,得到11。 可视化器将显示该单元格为11。 如果要保留y值,请添加“temp”单元格

++++++>+++++>[-] #0: 6 #1: 5 #2: 0
<[<+>>+<-]
>[<+>-]