10 9 8 7 6 5 4 3 2 1…打印2016


12

为了解决我在Puzzling遇到的挑战,您的目标是输出2016

规则:

  • 您必须10 9 8 7 6 5 4 3 2 1按该顺序包括数字。它们可以用作单独的整数,也可以串联在一起(例如1098),但是它们10不能分隔为10-数字之间不能存在任何字符。请注意,在某些语言中,10可能实际上并不表示整数文字10,这是可以接受的。
  • 您的代码不得包含任何其他数字或预定义的数字变量或常量(因此T,不允许使用Pyth,因为它是数字常量)。
  • 您必须使用数字进行计算 20162016不允许简单地输出而不对所需的数字执行任何操作(例如,通过解码仅包含字母字符的编码字符串)。也不允许分段输出2016(例如2016则为);您必须具有由数值组成的单个输出2016
  • 字节最少的有效答案将获胜。

3
@nicael我很确定解决难题已经完成。我们曾遇到过几种“插入算符来求解方程式”的难题,但是很难找到它们。
马丁·恩德

1
先前的修订版(2)实际上更有趣。新功能只是打印字符串,计算已经在您令人困惑的问题中进行了
nicael

1
1)我们可以计算出:基于什么我可以对当前的问题只是看到了一些问题20,并16和打印他们一前一后或不计算的数量需要在打印之前是2016?2)是否允许功能?3)是否允许串联数字?例如1098(我在前面的评论中假设是,但只是为了确认)4)“使用整数计算2016”是否意味着我们在中间步骤中永远都不可能有浮点数?例如,我可以平方一个数字并四舍五入吗?
Sp3000 2016年

1
5)如果我使用的语言不是将“ 10”视为数字十,而是将其后跟零而不是数字10怎么办?这样的语言会被取消资格吗?(示例语言:Befunge)6)我们可以使用预定义的数字变量代替 10 T987654321吗?
Sp3000 '16

@ Sp3000 1 2号3号 只要您不违反其他任何规则,就可以进行4个浮动。10必须包括5个,以便您需要以某种方式进行处理。6。只要10出现在前面T
rybo111'1

Answers:


22

果冻17 15 14字节

109876:54+3_21

在线尝试!

怎么运行的

109876:54+3_21

109876            Initialize the left argument as 109876.
      :54         Perform integer division by 54, yielding 2034.
         +3       Add 3, yielding 2037.
           _21    Subtract 21, yielding 2016.

8

六角形,61字节

不会赢,但我只想在六角形中挑战。

这使用了与其他答案不同的方法(更糟)。它需要2016年的一些因素(2,3,6,7,8)并将它们相乘。

缩小:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

未缩小:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

解释即将到来;


5
很快就会有解释; ”我想我们对'很快'有了不同的理解。; P
Kevin Cruijssen

1
@KevinCruijssen糟糕,我完全忘记了这一点。...现在我不明白它是如何工作的。大。
蓝色

5

Pyth,16个字节

+/109876 54-3 21

进行整数除法,然后加(3-21)。

在这里尝试。


4

TI-BASIC,17 15字节

int(109876/54-√(321

这使用@nicael的方法。

17个字节:

10+9*8-7+654*3-21

可以将来自Puzzling的此解决方案直接转换为TI-BASIC。


1
在Japt中也可能有效,可能还有其他一些。
ETHproductions 2016年

1
也可以在PowerShell和Mathematica(Wolfram)中使用,我想很多很多。经过微不足道的修改,它可能还会在数十种软件中起作用。
AdmBorkBork,2016年

一个可爱的多语言解决方案
TanMath 2016年

如果您要使用其他语言,我将删除我的社区Wiki。
Addison Crump

3

Japt,17个16字节

Â(109876/54-321q

我讨厌这个17。可能会找到另一个解决方案。

说明:

  • 321q 是321的平方根。
  • ~~ 楼层数。

在线尝试!


Â== ~~:-)
ETHproductions 2016年

109876/54-321¬f是15 :-D
ETHproductions'Jan

@Eth但是f不起作用,不是吗?
nicael

它应该是固定的。但是口译员现在需要维护,我将暂时恢复它。
ETHproductions 2016年

109876/54-321q)f现在有效。另一个建议则没有。
ETHproductions 2016年


3

公元前14岁

109876/54+3-21

这里没有什么令人兴奋的-借鉴其他答案。


1
直流等效109876 54/3+21-p得分为16,但不保证有自己的答案。
Toby Speight

2

Haskell,31个字节

[10,9*8*7+const 6 5..]!!4+3*2*1

不是最短的,10+9*8-7+654*3-21就像在其他答案中看到的那样,也可以在Haskell中使用,但是有所不同。

这将建立一个以10和开头的列表9*8*7+6 = 510,因此偏移量500用于以下元素。整个列表是[10,510,1010,1510,2010,2510 ...]。我们选择4th元素(基于索引0),即2010add 3*2*1 = 6。Voilà。

const 6 5 = 6用来摆脱5不必要的。


2

Python 2,20个字节

print 109876/54+3-21

再次,同样无聊2016.(740)。利用以下事实:如果表达式中没有小数,它将返回一个整数。


1

> <>(鱼),18个字节

10987**r65r4*n;321

说明:

将9 8和7相乘得到504,在添加4之前反转堆栈并再次对其进行反转,然后将504和4相乘得到2016。然后打印数字并在最后3个数字之前结束程序(我可以这样做如果规则规则很重要,那么也没有任何区别)。


1

数学++,17字节

_(109876/54)+3-21

实际上,此打印2016.0。但是实际上没有办法2016用这种语言打印确切的字符串。

17字节的TI-BASIC解决方案也可以在这里使用。


1

多种语言,17字节

10+9*8-7+654*3-21

此代码首次在Thomas Kwa的TI-BASIC答案中使用,也可用于:

  • AppleScript(完整程序)
  • BC(完整程序)
  • Math ++(表达式或完整程序)
  • Mathematica(功能,因此无效)
  • Powershell(完整程序)
  • Japt(完整程序)
  • JavaScript(控制台输入,因此无效)需要再次验证
  • Perl 5(功能,因此无效)。需要第二次验证
  • Haskell(功能,因此无效)
  • Python REPL(表达式,因此需要REPL环境才能获取输出)

1
而且,重点是什么?
nicael

我正在@nicael(正在计划)(除非Thomas Kwa也希望在他的回答中添加其他答案),以添加所有可以找到的涉及该答案的答案(TI-BASIC除外)。标记为社区,以便其他人可以贡献力量。
Addison Crump

1
为什么用“功能,因此无效”的话?默认情况下允许使用功能。
nimi 2016年

5
我不了解其他语言,但是10+9*8-7+654*3-21既不是JavaScript也不是Perl函数。
丹尼斯,

1
@ SP3000:哦,这些无效规则的改变...
NIMI



1

PHP,27字节

<?=~~(109876/54+3-21);

(22个字节)太无聊了,

所以我使用10到9作为单独的数字:

<?=10*(9-8+7-6),5+4-3+2<<1;

其他解决方案,主要有小作弊:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;

0

银河系1.6.528个 25字节

10+9*(8)7;^*6*5/4*3/2*A!1

说明

10+9*                      ` perform 10*9 (leaves 90 at TOS)
     (8)7;^*               ` get rid of 8 and multiply the TOS by 7
            6*5/4*3/2*A    ` perform TOS*6/5*4/3*2 (leaves 2016 at TOS)
                       !   ` output the TOS
                        1  ` push 1 to the stack




0

C 37字节

main(){printf("%d",109876/54+3-21);}

与许多礼物一样的主题。



0

JavaScript(ES6),21个字节

f=

_=>~~(109876/54+3-21)

console.log(f())

如果“倒数”变为0,则可以用19个字节完成。

f=
_=>109876/54+3-21|0
console.log(f())

而且,从现在开始到2017年,这也可以用21个字节完成:

f=
_=>-~(109876/54+3-21)
console.log(f());

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.