在BF,我知道你可以添加並與+
和-
運營商減,你可以乘兩個預先定義的數字,像這樣:如何在Brainf ** k中使用像modulo這樣的數學運算符?
Multiply 4 and 4
++++[>++++<-]
但我怎麼能乘兩個變量,或者使用其他數學運算符,比如模數還是分數?
在BF,我知道你可以添加並與+
和-
運營商減,你可以乘兩個預先定義的數字,像這樣:如何在Brainf ** k中使用像modulo這樣的數學運算符?
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
實施例:
乘三個([P])倍五(一個[P + 1]),並將結果放置在有[P + 2]。
+++>+++++<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<
[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<
[<<+>>-]
<-]
一些進一步閱讀here
參考此鏈接:
https://esolangs.org/wiki/Brainfuck_algorithms
它使用值,如TEMP0,X,Y,等你應該選擇細胞持有這些值,並用>
或<
替換變量名稱以轉到存儲它的單元格
乘法只是重複的加法; 4 * 4 == 4 + 4 + 4 + 4.類似的分割/減法。指數運算和模數也可以使用加法和減法來表示。 –
@PedrodelSol你可以留下一個答案,我將如何實現這些? – ASCIIThenANSI
[乘法使用增量](http://stackoverflow.com/questions/25907759/multiplication-using-increments) –