我的炉子上有10 (0到9)种不同的热量设置,还有一种非常奇怪的循环方式。
没有其他温度控制按钮。
在这个挑战中,您将使用一串命令和输出作为输入,这些命令和输出设置了我的炉子顶,在运行该序列后结束。
答案将以字节为单位得分,而更少的字节将更好。
您可以以下列任何一种格式输入:
你可以输出
输入为字符串-表示递减,+作为增量输入。
: 0
- : 4
+ : 9
-- : 3
-+ : 5
+- : 8
++ : 0
--- : 2
--+ : 4
-+- : 4
-++ : 6
+-- : 7
+-+ : 9
++- : 4
+++ : 9
---- : 1
---+ : 3发布于 2021-02-01 09:56:19
|x|x.fold(0,|u,v|if u>0{u-v*2+1}else{9>>v}%10)取零的Iterator ( +)和1( -),并返回最终的炉子温度。取-1s和1s似乎没有帮助,因为在整数算术中表示(-1,1) -> (4,9)并不简单。
使用Arnauld输入法与位移位技巧作为零大小写。此外,Rust的if- larger表达式可以是较大表达式的一部分,因此%10被排除在外,以避免(u-v*2+1)%10中的括号。
发布于 2021-02-01 15:44:03
接受0表示+和1表示-的列表。
}{
0>?@`"+1
^ 1-0=v
`15|8*v
|<<,<+<
^10
a循环,基于输入},@向下指向-1和mod 15 |15 (设置-1到14),或者转到+1和+ ((a=0) * 8) -因此,如果n为0,则设置为9。我们将两个路径,连接起来,用mod 10 |10得到14 -> 4,10 -> 0。如果输入为空,则a继续?到输出}的旁路径。
(不应该需要在10旁边的^,但我还没有修复这个错误。)
发布于 2021-02-01 10:39:23
将输入作为1/-1的列表
reduce$((p,k)->[k%7-2,p+k][p>0]%10,?,0)这使用((-1)%7-2)%10 = (6-2)%10 = 4和(1%7-2)%10 = (-1)%10 = 9,这是因为在Python中,模块操作的结果与除数具有相同的符号。
-k%-7将代替k%7-2工作,如果我们在输入中交换-1和1,则会缩短一个字节,但这感觉就像是滥用了输入格式。
https://codegolf.stackexchange.com/questions/218360
复制相似问题