Let's enjoy brainfuck. ~割り算編~
コード紹介
今回はbrainfuckで割り算をするプログラムの紹介をしたいと思います。
↓割り算をするコード
,>++++++[<-------->-]>>>,>++++++[<-------->-]>,>++++++[<-------->-]<[<[-]<<<<<[>>>>[<<<+>->+>-]<[>+<-]>>+<<<<[<[->>+>]>>>[<<<]<<-]<]>>[>>[<<+>+>-]<[>+<-]>>-<<]>[<]<[<<++++++++++>>-]>>>>>++++++[<<++++++++>>-]<<.>-]
入力は、
- 割られる数
- 割る数
- 出力する桁数
です。
実行は こちらのサイト がおすすめです。
実行例
入力が
176
の場合、
1
を
7
で割った結果を
6
桁出力します。
1/7
は
0.142856...
なので、
014285
と出力されます。
こちら で動作を確認できます。
解説 (?)
,>++++++[<-------->-]>>>,>++++++[<-------->-]>,>++++++[<-------->-] <[ <[-] <<<<<[ >>>>[<<<+>->+>-] <[>+<-] >>+ <<<<[<[->>+>]>>>[<<<]<<-] < ] >>[>>[<<+>+>-]<[>+<-]>>-<<]>[<] <[<<++++++++++>>-] >>>>>++++++[<<++++++++>>-]<<. >- ]
ポインタの左から順に ABCDEFG としています。
input G[ Fのリセット A[ EをBと-Cにコピー F+=1 A-Bをする、うまく引けた場合C+=1 ] C[ F-=1 C+=E ]Dで終了 Cの10倍をAに代入 Fのprint G-=1 ]
参考・リンクなど