2015-04-24 67 views
0

在BF,我知道你可以添加並與+-運營商減,你可以乘兩個預先定義的數字,像這樣:如何在Brainf ** k中使用像modulo這樣的數學運算符?

Multiply 4 and 4 
++++[>++++<-] 

但我怎麼能乘兩個變量,或者使用其他數學運算符,比如模數還是分數?

+0

乘法只是重複的加法; 4 * 4 == 4 + 4 + 4 + 4.類似的分割/減法。指數運算和模數也可以使用加法和減法來表示。 –

+0

@PedrodelSol你可以留下一個答案,我將如何實現這些? – ASCIIThenANSI

+0

[乘法使用增量](http://stackoverflow.com/questions/25907759/multiplication-using-increments) –

回答

5

這是一個通用的例程,用於乘以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

相關問題