我如何在 Brainfuck 中使用模运算等数学运算符?
How do I use mathematical operators like modulo in Brainfuck?
在 BF 中,我知道您可以使用 +
和 -
运算符进行加减运算,并且可以像这样将两个预定义的数字相乘:
Multiply 4 and 4
++++[>++++<-]
但是我怎样才能将两个变量相乘,或者使用其他数学运算符,例如模或除?
这是在 bf 中将两个数字相乘的通用例程。摘自 here。
将一个值乘以另一个值
这需要多个副本和嵌套循环。
Copy first operand to a work location
Move to work location and enter a loop
Move to second operand and copy to a work location
Move to second work location and enter a loop
Move to result location and increment
Move to second work location and decrement
Loop until second work location equals zero
Move to first work location and decrement
Loop until first work location equals zero
示例:
将三(a[p])乘以五(a[p+1])并将结果放入a[p+2]。
+++>+++++<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<+>>-]
<-]
进一步阅读here
参考这个link:
https://esolangs.org/wiki/Brainfuck_algorithms
它使用temp0、x、y等值。您应该选择单元格来保存这些值,并将变量名称替换为>
或<
以转到保存的单元格它
在 BF 中,我知道您可以使用 +
和 -
运算符进行加减运算,并且可以像这样将两个预定义的数字相乘:
Multiply 4 and 4
++++[>++++<-]
但是我怎样才能将两个变量相乘,或者使用其他数学运算符,例如模或除?
这是在 bf 中将两个数字相乘的通用例程。摘自 here。
将一个值乘以另一个值 这需要多个副本和嵌套循环。
Copy first operand to a work location
Move to work location and enter a loop
Move to second operand and copy to a work location
Move to second work location and enter a loop
Move to result location and increment
Move to second work location and decrement
Loop until second work location equals zero
Move to first work location and decrement
Loop until first work location equals zero
示例:
将三(a[p])乘以五(a[p+1])并将结果放入a[p+2]。
+++>+++++<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<+>>-]
<-]
进一步阅读here
参考这个link:
https://esolangs.org/wiki/Brainfuck_algorithms
它使用temp0、x、y等值。您应该选择单元格来保存这些值,并将变量名称替换为>
或<
以转到保存的单元格它