MarioLANG、659 621 591 582 556 543 516 458 418 401 352 308 369バイト
丸めは非常に高価です:/
オンラインでお試しください
;>>[![( [( [( [( [( [<(([!)))!+(((-<>( >((+
:"==#================"===#== #=====""[ "==
)( -[!)>>[![) [)[<(!>)[<)) >))) [!!-[!((
( )"#="==#======="=#==="=<="=====##==#==<
+ +>) )-+<>+)[!)+! +))![-[)>[ [([-[![<<:
+ )-+ )(=""===#==# ==#===)"=======#=====
+ >!>)!> !(- < !:+:))< ))!((++)))<
) "#"=#===#===" ======" ===#======="
!
=#========================
これは予想よりも面白かったです。これはおそらく最適ではありませんが、私はそこに到達していると思います。
説明時間:
(352バイトバージョンの場合)
最初に引数を取得して出力します。
;
:
十分にシンプル
次に、プログラムの大部分に移動します。除算入力/ 3
;>>[![ [( [( [<result
:"==#======================"======
) -[!)>>[![ [<((((!
) )"#="==#=========="====#
+( +>) ) +>(+)[!)+))!
+( )-+ ) -"====#====#
+ >!>)! >! - <
"#"=# "#===="
!
=#
これはbrainfuck部門のわずかに変更された変換です
[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]
入力にかかる
n 0 d 0 0
そしてあなたに返します
0 n d-n%d n%d n/d
我々は分裂を得た後、私たちは、和得るためにそれを使用してNとN / Dをし、それを印刷します
;>>[![ [( [( [< !+(((-<
:"==#======================"===)#====="
) -[!)>>[![ [<((((! >))) [!(((
) )"#="==#=========="====# ="=====#==:
+( +>) ) +>(+)[!)+))!
+( )-+ ) -"====#====#
+ >!>)! >! - <
"#"=# "#===="
!
=#
次に、別の除算を行う必要があります:(2 *(n + n / d))/ 3
(2 *(n + n / d)を得るので
;>>[![ [( [( [< !+(((-<
:"==#======================"===)#====="
) -[!)>>[![ [<((((! >))) [!(((
) )"#="==#=========="====# ="=====#==:
+( +>) ) +>(+)[!)+))! 2*2n/d>[ -[![ <
+( )-+ ) -"====#====# ======"======#====
+ >!>)! >! - < !((++))<
"#"=# "#====" #======"
!
=#
3でそれを部門に戻します
;>>[![ [( [( [< !+(((-<
:"==#======================"===)#====="
) -[!)>>[![ [<((((! >))) [!(((
) )"#="==#=========="====# ="=====#==:
+( +>) ) +>(+)[!)+))! )>[ -[![ <
+( )-+ ) -"====#====# )"======#====
+ >!>)! >! - < +++))!((++))<
"#"=# "#====" ===========#======"
!
=#=================
その時点ですべてが爆発すると、マリオは永遠にますます大きな数で除算を行う無限ループに陥ります。
そして、最初の分割と2番目の分割を区別する方法が必要であることを修正するには、結局、ああ、喜びがあります。
;>>[![ [( [( [<([!)!+(((-<
:"==#======================"==#)#====="
) -[!)>>[![ [<((((!))< >))) [!(((
) )"#="==#=========="====#)="="=====#==:
+( +>) ) +>(+)[!)+))!!:+:)))>[ -[![ <
+( )-+ ) -"====#====#======)"======#====
+ >!>)! >! - < +++))!((++))<
"#"=# "#====" ===========#======"
!
=#=================
基本的に、xが
x 0 n d-n%d n%d n/d
が0の場合、それは最初の部門にいることを意味します
それ以外の場合は、2番目の部門にいます。部門の結果を出力し、1を追加して、もう一度出力します。
そして、出来上がりパイとして簡単。