如何将两个数字与不等式进行比较?(大于或小于)
我想比较个位数例如
1 2
5 3
9 2
等等
这是比较两个数字的最佳方法。为什么,因为如果你足够聪明,你可以在更大的程序中使用相同的代码。它具有高度的可移植性。
假设我们有两个数字 a,b。我们有两个块:if( a>=b ) 和else,希望它足够了。
0 1 0 a b 0
像这样制作数组。并指向 (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
]
它不会影响以下程序代码,因为两个代码块都将在 (1) 中结束,假设指针将到达 (1),您可以进行进一步编码
如果您复制代码,请删除文档。因为代码包含一些有效的脑残符号,例如 < 。, ETC。
一旦你知道两个数字之间的距离是多少,你应该在同一个循环迭代中减少它们,然后检查两者是否为零:你会明白哪个更小。
例如:
+++++ > +++ < [->-< check is first is zero, then second]
(这只是给你一个提示,你必须注意相同的数字和类似的问题。
我也在考虑这个问题,虽然我确信这不是最好的解决方案,但至少它可以回答哪个数字更大的问题 =)
程序要求输入两个字符,如果第一个较小则输出“<”,如果较大则输出“>”,如果相等则输出“=”。输出一个字符后,程序通过要求额外的输入而停止。
+>,>,<<[>-[>>>]<[>>-[>++++++++++[->++++++<]>.,]++++++++++[->++++++<]>+.,]<-[>>>]<<[>>>++++++++++[->++++++<]>++.,]<<<]
希望更清楚一点:
+ init (0) to 1
>, read (1)
>, read (2)
<<[ loop forever
>-[>>>] decrement (1) going to (4) if (1) != 0
<[ goto (0) == 1 if (1) reached 0 (otherwise goto (3))
>>-[>++++++++++[->++++++<]>.,] decrement (2) printing lessthan if larger than 0
++++++++++[->++++++<]>+., if (2) == 0 print '='
]
<-[>>>] decrement (2) going to (5) if (2) != 0
<<[ goto (0) == 1 if (2) reached 0 (otherwise goto (3))
>>>++++++++++[->++++++<]>++., print largerthan since (2) reached 0 first
]
<<< goto(0)
]
我做了一个解决方案,它给你一个布尔值,指针总是在同一点。
这是它一开始的样子:
0 0 0 a b 0 0
p
这是两个可能的输出:
0 0 0 0 0 1 0 #true
p
0 0 0 0 0 0 0 #false
p
编码:
>>>>
[ # while cell != 0
- # decrement a
[ # if a != 0
>- # decrement b
[ # if b != 0
< # go left
<-< # undo the finally-block;
] # finally-block
<[-]> # clear a
>+> # res = 1; move to end-position
<<< # undo the finally-block
] # finally-block
>[-]>> # clear b; res = 0; move to end-position
] #
缩小版:
>>>>[-[>-[< <-<]<[-]>>+><<<]>[-]>>]
给定两个数字 A 和 B,如果 A 大于 B,以下代码将打印 A,如果 B 大于 A,则打印 B,如果两者相等,则打印 C。
>>>>>>>>>++++++[>+++++++++++<-]>[>+>+>+<<<-]>+>->
<<<<<<<<<<<,>,<
[->-<[>]<<]>>>[>>]>>>>>>>>.
BF中不存在这样的东西。BF 中的>
和<
分别将指针向右和向左移动。