Couch 2048:到2048年还有多少钱?


20

我刚刚尝试了一款名为Couch 2048的游戏。
(注意:您应该看一下以更好地理解这个问题。)
由于这对我来说并不十分令人兴奋,所以我一直在问自己“直到2048还要多少钱!?”
这激发了我提出一个挑战,因为计算挑战并不像我想的那么容易。

您的目标:
给定沙发上的球列表,您必须输出必须从天上掉下来的数值为2的球,这样一个人才能赢得比赛(达到2048球)。

  • 假设输入有效。
  • 假设玩家不会丢任何球。
  • 如我所说,假定从天上掉下来的球的值始终为2。
  • 有效的输出示例:3,“ 4”,[5],[“ 6”]

编辑:
我应该澄清一些事情:
-您必须打印最少的2s。

测试案例:
[2048] -> 0您已经赢了
[1024,1024] -> 0您不需要再赢得更多球
[1024,512,256,128,64,32,16,8,4,2] -> 1“激活链”所需的一个球
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

注意
我不是母语人士-告诉我您是否发现错字或一些非语法文字。
如果不清楚,请在评论中提问。


为什么[4,16,64] -> 22呢?
l4m2

3
欢迎来到PPCG。看起来这是一个挑战:将数组中的所有元素相加,相减2048并除以2-如果是,则可能要仔细检查最后一个测试用例-如果没有,请以它为例来说明为什么输出不正确不是982
毛茸茸的

1
@Shaggy thx注意到一个愚蠢的错误

4
哇,我还没想到我的第一个挑战在第一个小时会得到7个答案和2个投票!我达到了〜28个人!

2
嗨,唐纳德:请解释您的观点!挑战是必须改善的!

Answers:



8

Brain-Flak,72个字节

({{}})({<({}[()()])>()}{})([{}]((((((((()()()()){}){}){}){}){}){}){}){})

在线尝试!

({{}})                     # Sum entire stack
      (                  ) # Push:
       {<          >()}{}  #   The number of times you can...
         ({}[()()])        #   Subtract 2 before reaching 0

([{}]                                        ) # Subtract that from...
     ((((((((()()()()){}){}){}){}){}){}){}){}  # 1024

1
谢谢!我对学习Brain-Flak感兴趣,您的解释很有用。
Galen Ivanov








2

天主教徒,5字节

-`L̇½Ṗ

说明:

-      subtract
 `L̇    1024
       from
   ½   half of the
    Ṗ  sum [of the input]

1
我闻到一种新的高尔夫语言吗?:)
ETHproductions

1
+1为新语言。另一个要学习的东西</
sigh



1

果冻7 6字节

HSạ⁽¡ç

在线尝试!

说明:

HSạ⁽¡ç    Example input: [4,16,64]
H         Halve input. [2, 8, 32]
 S        Sum. 42
   ⁽¡ç    Number 1024.
  ạ       Difference. 982

使用以250为基数的-1字节



1

perl -aE,27个字节

$"=$:;say eval"(2048-@F)/2"

这将从中读取带有数字(空格分隔)的行STDIN,并将答案写入STDOUT

它的作用是从2048的输入中减去所有数字,然后将余数除以2。-a开关将数组中的@F数字放入(每个元素一个数字)。如果我们将数组内插到字符串中(这就是我们在此处所做的事情),则perl会将$"元素的值放在元素之间。很少使用的变量$:是默认值\n-;并且由于忽略了令牌之间的空白,因此结果是从2048中减去所有数字eval







0

AWK,26个字节

{s+=$1}END{print 1024-s/2}

输入数字用换行符分隔(即每行一个)


0

Neim,6个字节

对Neim来说还很新,但是可以正常工作

𝐬ᚺςᚫᛦ𝕤

说明:

  𝐬         : Sum input
   ᚺ        : Divide by 2 (stack now [input summed and divided by 2])
    ς       : Variable set to 16 pushed to stack
     ᚫ      : Multiply by 2
      ᛦ     : Square (stack now [input summed and divided by 2, 1024])
       𝕤    : Subtract then absolute

在线尝试!






By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.