Brainfuck比较2个数字大于或小于

Krz*_*wko 16 brainfuck

如何将两个数字与不等式进行比较?(大于或小于)

我想比较一位数例如

1 2
5 3
9 2
Run Code Online (Sandbox Code Playgroud)

等等

Dhe*_*Ram 20

这是比较两个数字的最佳方法.为什么,如果你足够聪明,你可以在更大的程序中使用相同的代码.它是高度可移植的.

假设我们有两个数字a,b.我们有两个块:if(a> = b)else,希望它足够了.

    0 1 0 a b 0
Run Code Online (Sandbox Code Playgroud)

像这样制作数组.并指向(4)即指向a

    +>+<                   This is for managing if a=0 and b=0
    [->-[>]<<]             This is a magic loop. if a is the one which 
                           reaches 0 first (a<b),then pointer will be at(4).
                           Else it will be at (3)
    <[-  
         //       BLOCK (a>=b)
         //You are at (2) and do whatever you want and come back to (2).
         //Its a must
    ]
    <[-<
         //       BLOCK(a<b)
         //You are at (1) and do whatever you want and come back to (1).
         //Its a must
    ]
Run Code Online (Sandbox Code Playgroud)

它不会影响以下程序代码,因为两个代码块最终都会进入(1)您可以进行进一步的编码,假设指针将达到(1)

如果您复制代码,请删除文档.因为代码包含一些有效的brainfuck符号,如<.等

  • @Timtech不是不是.这是使这项工作的代码.如果`b`为零,`[>]`将终止,然后```将在'a`之前在单元格上结束,这是零.如果b非零,它将在它旁边的零处结束,并且循环将继续直到"a"或"b"为零. (2认同)

Jac*_*ack 10

一旦你知道两个数字之间的距离,你应该在相同的循环迭代中应该或减少它们,然后检查两者是否为零:你将理解哪一个更小.

例如:

+++++ > +++ < [->-< check is first is zero, then second]
Run Code Online (Sandbox Code Playgroud)

(这只是为了给你一个提示,你将不得不关注相同的数字和类似的问题.