迷宫,28 24字节
?:?:}+=-:(:(#{:**+**#2/!
说明
由于在迷宫中循环往往很昂贵,因此我认为显式公式应该最短,因为它可以表示为线性代码。
Cmd Explanation Stacks [ Main | Aux ]
? Read M. [ M | ]
: Duplicate. [ M M | ]
? Read N. [ M M N | ]
: Duplicate. [ M M N N | ]
} Move copy to aux. [ M M N | N ]
+ Add. [ M (M+N) | N ]
= Swap tops of stacks. [ M N | (M+N) ]
- Subtract. [ (M-N) | (M+N) ]
: Duplicate. [ (M-N) (M-N) | (M+N) ]
( Decrement. [ (M-N) (M-N-1) | (M+N) ]
: Duplicate. [ (M-N) (M-N-1) (M-N-1) | (M+N) ]
( Decrement. [ (M-N) (M-N-1) (M-N-2) | (M+N) ]
# Push stack depth. [ (M-N) (M-N-1) (M-N-2) 3 | (M+N) ]
{ Pull (M+N) over from aux. [ (M-N) (M-N-1) (M-N-2) 3 (M+N) | ]
: Duplicate. [ (M-N) (M-N-1) (M-N-2) 3 (M+N) (M+N) | ]
* Multiply. [ (M-N) (M-N-1) (M-N-2) 3 ((M+N)^2) | ]
* Multiply. [ (M-N) (M-N-1) (M-N-2) (3*(M+N)^2) | ]
+ Add. [ (M-N) (M-N-1) (3*(M+N)^2 + M - N - 2) | ]
* Multiply. [ (M-N) ((M-N-1)*(3*(M+N)^2 + M - N - 2)) | ]
* Multiply. [ ((M-N)*(M-N-1)*(3*(M+N)^2 + M - N - 2)) | ]
# Push stack depth. [ ((M-N)*(M-N-1)*(3*(M+N)^2 + M - N - 2)) 1 | ]
2 Multiply by 10, add 2. [ ((M-N)*(M-N-1)*(3*(M+N)^2 + M - N - 2)) 12 | ]
/ Divide. [ ((M-N)*(M-N-1)*(3*(M+N)^2 + M - N - 2)/12) | ]
! Print. [ | ]
指令指针然后陷入死胡同,必须转身。现在遇到/它时,它将尝试除以零(因为堆栈的底部隐含了零),这将终止程序。