您的任务是编写一段代码,将Brainfuck变体中的当前单元格清零,每个单元格可以包含任意大数值的有符号整数,而不是正常的0到255。
您可以假设当前单元格的左边有l个单元格,而右边的r个单元格最初为零。您的程序只能访问这些l + r +1个单元。代码结束后,应将l + r个额外的单元格保留为零,并将指向当前单元格的指针保留在原始位置。
您不得使用任何输入/输出。
l + r最小的代码获胜。如果有平局,则以最短的代码为准。建议还声明程序的时间复杂度以供参考,其中n是当前单元格中原始整数的绝对值。
有用的工具
您可以使用mbomb007在TIO上使用此解释器来测试此版本中的Brainfuck程序。
我将其标记为代码高尔夫,因为我认为我们将迅速达到最佳l + r。
—
jimmy23013
从您的评论中听起来,您的意思是任意大的整数,它可以是正数或负数。对于某些人来说,这是英语方言的不同之处,因此弄清它可能是正面的还是负面的可能会有所帮助。
—
isaacg '17
@ jimmy23013您是否有一个带符号单元格的BF解释器可用于此目的?
—
mbomb007 '17
@ mbomb007 codegolf.stackexchange.com/a/3085/25180,但可能太高尔夫球了……
—
jimmy23013
@Mego为什么?在“实际”挑战中,您还必须获得最佳的l + r,这可能会使减小代码大小变得更加困难。
—
jimmy23013