Let's enjoy brainfuck. ~割り算編~

コード紹介

今回はbrainfuckで割り算をするプログラムの紹介をしたいと思います。

↓割り算をするコード

,>++++++[<-------->-]>>>,>++++++[<-------->-]>,>++++++[<-------->-]<[<[-]<<<<<[>>>>[<<<+>->+>-]<[>+<-]>>+<<<<[<[->>+>]>>>[<<<]<<-]<]>>[>>[<<+>+>-]<[>+<-]>>-<<]>[<]<[<<++++++++++>>-]>>>>>++++++[<<++++++++>>-]<<.>-]

入力は、

です。

実行は こちらのサイト がおすすめです。

実行例

入力が 176 の場合、 17 で割った結果を 6 桁出力します。

1/70.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
]

参考・リンクなど

brainfuck実行