+
在 BF 中,我知道您可以使用and运算符进行加减-
运算,并且您可以将两个预定义的数字相乘,如下所示:
Multiply 4 and 4
++++[>++++<-]
但是如何将两个变量相乘,或者使用其他数学运算符,例如取模或除法?
这是一个通用的例程,用于将 bf 中的两个数字相乘。取自这里。
将一个值乘以另一个值 这需要多个副本和嵌套循环。
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
参考这个链接:
https://esolangs.org/wiki/Brainfuck_algorithms
它使用诸如 temp0、x、y 等值。您应该选择单元格来保存这些值,并将变量名称替换为>
或<
转到保存它的单元格