不使用数字,就可以获得最高的薪水。但是不要夸张!


227

当我申请某些职位广告中没有说明薪水的工作时,我想到一个特别邪恶的面试官,这将使候选人有可能通过“打高尔夫球”来决定自己的薪水!

因此,它就像这样:

在不使用数字的情况下,编写代码以输出您希望提供的年薪。

但是,能够编写简洁的代码是该公司的基石。因此,他们实施了非常严格的资历阶梯

编写b字节长的代码的雇主最多可赚取($ 1'000'000)· b -0.75

我们正在查看(这些是整数部分,仅出于显示原因):

   1 byte  → $1'000'000       15 bytes → $131'199
   2 bytes →   $594'603       20 bytes → $105'737
   3 bytes →   $438'691       30 bytes →  $78'011
   4 bytes →   $353'553       40 bytes →  $62'871
  10 bytes →   $177'827       50 bytes →  $53'182

挑战

编写一个不带输入的程序或函数,并输出一个包含美元符号($,U + 0024)和数字十进制表示(整数或实数)的文本。

  • 您的代码不能包含字符0123456789

在输出中:

  • 美元符号和数字之间可以有一个空格。

  • 尾随空格,换行符和换行符是可以接受的,但是任何其他输出都是禁止的。

  • 该数字必须仅使用字符表示为十进制数字0123456789.。这不包括科学计数法的使用。

  • 允许使用任意数量的小数位。

如果条目输出的值不大于($ 1'000'000)· b -0.75条目有效,其中b是源代码的字节长度。

输出示例(不应输出引号)

"$ 428000"            good if code is not longer than 3 bytes
"$321023.32"          good if code is not longer than 4 bytes
"  $ 22155.0"         good if code is not longer than 160 bytes
"$ 92367.15 \n"       good if code is not longer than 23 bytes
"300000 $"            bad
" lorem $ 550612.89"  bad
"£109824"             bad
"$ -273256.21"        bad
"$2.448E5"            bad

比分

您输出的值就是您的分数!(当然,薪水最高)。


排行榜

这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。

为确保您的答案显示出来,请使用以下Markdown模板以标题开头。

# Language Name, $X (Y bytes)

X您的薪水在哪里Y,提交的大小在哪里。(Y bytes可以在答案中的任何位置。)如果您提高了分数,则可以通过打分将旧分数保留在标题中。例如:

# Ruby, <s>$111111.111... (18 bytes)</s> <s>$111999 (17 bytes)</s> $123456 (16 bytes)

您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中:

# [><>](http://esolangs.org/wiki/Fish), $126,126 (13 bytes)


编辑:(四舍五入)每字节计数的最大允许分数,以便快速参考- 此处文本

在此处输入图片说明


61
这是极少数(imo)成功的非固定输出,无输入,非随机挑战之一。独特的想法!
Xcoder先生18年

2
好挑战!如果需要,我们可以输出完全格式化的货币值吗?喜欢$80,662.67而不是$80662.6659?您的规则似乎排除了逗号,这意味着我无法使用任何内置货币功能。
BradC

6
希望您不要介意,我添加了排行榜摘录的一种变体,按分数而不是字节排序。出色的第一个挑战!
ETHproductions

9
刚刚注意到了新的贡献者标签。结构合理的挑战,只有几天之久就可以得到很高的评价和大量的答案,我想知道这是否有资格参加今年的年度最佳新秀;)
Shieru Asakoto

2
正如我当时所说的那样,我已将此挑战提名为“最佳PPCG 2018年度最佳新人-挑战”类别的候选人
Shieru Asakoto

Answers:


109

bash,127127美元

x;echo \$$?$?

在线尝试!

由于该x命令不存在,因此会出错并将退出代码设置为127

然后,代码输出一个美元符号,然后输出$?两次。该$?变量存储前一个命令的退出代码,因此该输出$12712713个字节为单位


52
有趣的是,如果您使用的是Mac,并且已安装XQuartz,则此方法将不起作用,因为x 它确实存在。作为奖励,它在尝试打开时崩溃了,所以我得到了$11
numbermaniac

13
使用]代替x,前者的可能性较小。

@numbermaniac另外,还发现可以在ubuntu 19.04上安装以下命令:e,q,r。但是w是一件事情(接近who)并成功退出,因此您可以获得$ 00!
瓦尔

67

Java 8,$ 131,199.00(15字节)

v->"$"+'e'*'ԓ'

在线尝试。

说明:

v->            // Method with empty unused parameter and String return-type
  "$"+         //  Return a dollar sign, concatted with:
      'e'*'ԓ'  //  131199 (101 * 1299)

131,199.00<131,199.31

我使用了一个程序来生成一个可打印的ASCII字符,该字符在[32, 126]除以131199时将具​​有最低的十进制值。由于101可以131199平均分配,因此1299,基于我的字节数15,我仅比我的最高可能工资低31美分。


12
ang,惊人的高分!
ETHproductions

42

CJam,5字节,$ 262'144

'$YI#

在线尝试!

这个怎么运作

'$     Push '$'.
  Y    Push 2.
   I   Push 18.
    #  Pop 2 and 18 and perform exponentiation, pushing 262144.

41

CJam(5个字节)$ 294204.018 ...

'$PB#

在线尝试!

说明:

Pππ11294000B


6
由于分数是薪水,因此应在标题中提及。该答案目前正在获胜。:)
丹尼斯

37

R,20个字节,$103540.9

T=pi+pi;cat("$",T^T)

在线尝试!

20个字节的最大值为$105737.1,因此这与薪金上限相当接近!

这将是一个不错的加薪,如果我得到报酬做高尔夫代码……


2
可能是pi与数据集的总和相结合的一种方法...将需要一种编程方法来评估运算符/数据集/ pi的各种组合,以尽可能接近最大值。现在没有时间,但这听起来本身就是一个很大的挑战。
JayCe

29

GS2(5个字节)$ 292,929

•$☺↔A

完整程序(此处使用代码页437显示)。(5字节时可达到的最高工资是$ 299069.75)

在线尝试!

基于Dennis的GS2答案 ...

•$☺↔A                             []
•$    - push '$'                  ['$']
  ☺   - push unsigned byte:
   ↔  -   0x1d = 29               ['$',29]
    A - push top of stack twice   ['$',29,29,29]
      - implicit print            $292929

1
即使是5个字符,也就是11个字节。
dotancohen

3
@dotancohen:0x0724011d41按我的计数是5个字节……
eggyal

2
@eggyal:我错过了有关代码页437的一些知识。
dotancohen

3
亲爱的投票者,请您提供一些反馈。我看不到什么是不正确的,没有用的或不清楚的。
乔纳森·艾伦

27

R,21个字节$ 99649.9

cat("$",min(lynx^pi))

在线尝试!

R一种方法-另请参阅Giuseppe的答案

此字节数非常接近$ 101937的最大值。

奖金: object.size()

R,24字节$ 89096

cat("$",object.size(ls))

在线尝试!

这可能与系统有关,但是当我在TIO上获得该信息时,我得到了$ 89096-接近24字节的限制92223。


整齐!我考虑过要尝试选择一个好的数据集,但我不知道该在哪里找到它们...我认为该datasets包装很有意义。
朱塞佩

@Giuseppe我只是想prodsum随机...但督促增加太快了!
JayCe

sum(volcano)是的,690907但必须大约1字节才能工作,哈哈
朱塞佩

使用数据集的好主意!
digEmAll

@Giuseppe的好收获我完全忽略了这一点!h
JayCe

26

JavaScript(ES6),19字节,$ 109,839

_=>atob`JDEwOTgzOQ`

在线尝试!

109839109884


没有atob()(Node.js),26字节,$ 86,126

_=>'$'+Buffer('V~').join``

在线尝试!

的级联'$'与的ASCII码'V'(86)和'〜'(126)。


Buffer。第一次承认这堂课;')
Shieru Asakoto

1
@ user71546 如果允许使用千位分隔符,则可以24个字节的价格来实现$ 91,126。但显然,它们不是... :(
Arnauld

Buffer构造函数已弃用,因此在以后的版本中将变长
mcfedr

@mcfedr只要适当地指定了解释器的工作版本,我们就不会关心代码编写。
Riking

24

自我修改Brainfuck,16字节,$ 124444

<.<++.+.++..../$

在线尝试!


1
您最终没有使用:,因此可以删除它并添加另一个+,价格为$ 124444。
Nitrodon '18年

@Nitrodon嗯,谢谢。
user202729

在打印之后1,为什么不计入3然后仅打印3s?您将保存一个字节并打印一个更大的数字。
12431234123412341234123 '18年

@ 12431234123412341234123您需要保存两个字节。否则,只有15个字节,最多只能允许$ 131199,$ 133333太多了。
hdd

21

PHP,$ 131116(8字节)

没有为PHP看到一个,想扔一个。我知道php中的某个地方是一个错误的类型转换,会将它切成两半,但我现在找不到。

$<?=ERA;

这只是利用了PHP短标签和PHP内置常量的优势。

在线尝试!


1
哈,明天我会把它
换成

4
代替<?="$".,而是$<?=保存一些字节。
伊斯梅尔·米格尔

2
@IsmaelMiguel很好,谢谢!将其缩减为8个字节,但花了很长时间才弄清楚如何获得我的其余约70k薪水。
mschuett

1
哇,我不知道这个常量,但是我在文档中找不到,有人可以帮忙吗?
拉菲

3
@Rafee实际上找不到我可以找到的任何地方。这是17年前添加的语言常量github.com/php/php-src/commit/…。我通过转储所有可用的常量,然后开始对最短的常量进行grep来找到它。这似乎是由这里看到的OS提供gnu.org/software/libc/manual/pdf/libc.pdf在第195页
mschuett


17

Excel 19字节$ 107899.616068361

="$"&CODE("(")^PI()

说明:

     CODE("(")        // find ASCII code of ( which is 40
              ^PI()   // raise to power of Pi  (40^3.141592654)
 "$"&                 // append $ to the front of it
=                     // set it to the cell value and display


6
+1甚至更好,他们会对您的Excel技能印象深刻,并希望您成为客户经理。
THEREALyumdub

2
@theREALyumdub应该是一件好事吗?我不确定是否可以拿这笔薪水,如果这意味着我必须每天使用Excel;)
Aaron

我认为Excel的会计格式可以完全跳过$,而只需将格式设置为会计即可。
塞尔基'18

@Selkie Accounting格式添加了逗号,这是不允许的。您可以使用$#的自定义格式。我不确定是否应该以= CODE(“ *”)^ PI()将其计算为15个字符,价格为$ 125773,或者以= CODE(“)”)将17个字符计算为(为格式字母加上2个)^ PI()为$ 116603,或者如果不允许这样做。
Keeta

12

vim,$ 99999 $ 110000 $ 120000

i$=&pvh*&ur

在线尝试!

使用表达式寄存器(请注意,在$和之间有一个<Cr>字符(在大多数字体中不可见),=总共13个字节),用于插入'pvh'option值乘以option值'ur'

'previewheight' 是控制预览窗口高度的选项,默认情况下为12。

'undoreload' 是在vim放弃将其存储在内存中以进行撤消之前缓冲区可以具有的最大行数,默认值为10,000。


12

果冻 $ 256000 $ 256256(6 字节)$ 257256 

⁹‘”$;;

完整的程序。(6字节时可达到的最高工资是$ 260847.43)

在线尝试!

怎么样?

⁹‘”$;; - Main Link: no arguments
⁹      - Literal 256                            256
 ‘     - increment                              257
  ”$   - single '$' character                   '$'
    ;  - concatenate                            ['$',257]
     ; - concatenate                            ['$',257,256]
       - implicit print                      -> $257256

以前...

5字节$ 256256

”$;⁹⁺

(“ $”连接256,重复256-导致临时隐式打印)

6个字节$ 256000:

⁹×ȷṭ”$

(256×1000 ack'$')


1
看起来像5个字符,但11 个字节
dotancohen

9
@dotancohen Jelly使用自定义代码页
Carmeister

@Carmeister:很好!
dotancohen


@NieDzejkob确实有6个字节可用-我现在有$ 257256 :)
乔纳森·艾伦

11

C#

完整程序,72字节,$ 40448 66字节,$ 43008

class P{static void Main()=>System.Console.Write("$"+('T'<<'i'));}

在线尝试!

说明

左移运算符将char 'T''i'分别视为整数84和105并执行移位

Lambda,19字节,$ 109568 17字节,$ 118784

o=>"$"+('t'<<'j')

在线尝试!

编辑感谢@ LegionMammal978和@Kevin节省了2个字节


5
只是好奇,为什么在lambda的末尾加上分号?
LegionMammal978

1
除了什么@ LegionMammal978提到(尾随分号不具有字节数为Java / C#lambda表达式进行计数),通过利用未使用的空参数,你可以打高尔夫球的()=>o=>额外-1字节。
凯文·克鲁伊森

2
确实,有了@ Kevin's和我的建议,lambda就能o=>"$"+('t'<<'j')以$ 118784的价格打高尔夫球。
LegionMammal978 '18 / 08/28

@Kevin我对此一无所知,感谢您的信息。
pmysl

@ LegionMammal978感谢您指出不必要的分号并提供了更新的lambda。我一定以某种方式忽略了这个分号
pmysl

9

PHP,13 Bytes,$ 144000薪水

不幸的是,这项工作需要搬到毛里求斯(好吧,我可以向东移动一点点,但是,每时区减少,薪水都会下降$ 36k。)为了弥补不便,我的薪水每leap年增加$ 1。

$<?=date(ZL);

这只Z是以秒为单位输出时区,并附加是否是a年。


9

brainfuck,43字节,$ 58888

++++++[>++++++<-]>.<++++[>++++<-]>+.+++....

在线尝试!

这个怎么运作

++++++[>++++++<-]>.  write 36 to cell one and print (36 is ASCII for $)

<++++[>++++<-]>+.    add 17 to cell 1 and print (cell 1 is now 53, ASCII for 5) 

+++....              add 3 to cell 1 and print 4 times (cell 1 is now 56, ASCII for 8)

1
欢迎来到PPCG!希望您能留下来
Jo King

8

Python 3(22字节)$ 98,442

print('$',ord('𘂊'))

在线尝试!

很像Doorknob的Ruby答案,这里使用的4字节Unicode字符𘂊的序数值为22字节可达到的最大整数薪水。

请注意,print()默认情况下将打印其未命名参数,并用空格分隔(这sep是一个可选的命名参数)。


您可以比使用f字符串做得更好:print(f“ $ {ord('𘫿')}”))为21个字节,输出为$ 101119
Matt

2
@Matt是24个字节(我想到了f字符串,但意识到额外的花括号将花费2个字节)
Jonathan Allan

证明Python 2将获得更高的薪水。
mbomb007

8

Gol> <>,$ 207680 in 8 bytes

'o**n; $

在线尝试!

这个怎么运作:

'        Start string interpretation. Pushes the ASCII value of every character until it wraps back around to this character
 o       Output the top stack value as ASCII. This is the $ at the end of the code
  **     Multiply the top 3 stack values (This is the ASCII of 'n; ', 110*59*32
    n    Output top of stack as integer.
     ;   Terminate program
       $ (Not run, used for printing the $)

有趣的是,您可以使用h代替n;,其'o**h5$得分为$ 231504,但不能使用0-9,并且没有其他1字节的方式可以推送53,即ASCII值5


1
欢迎来到PPCG!
Mego


6

Mathematica,18字节,$ 107,163.49

$~Print~N[E^(E!E)]

完整程序;使用运行MathematicaScipt -script。输出$107163.4882807548后跟尾随换行符。我已经验证,这是形式的得分最高的解决方案,其中包含的,,,和。$~Print~N[expr]exprPiEI+-* /()!


I
user202729

@ user202729不,没有帮助;实际使用的任何数字,I而不是仅仅I II/I将通常带有+ 0.*I附加的数字N
LegionMammal978

非常好!我已经达到了"$"~Print~Exp[E!N@E](与的长度相同"$"~Print~N[E^(E!E)]),但是用引号引起来$,输出仅勉强超过限制。
米莎·拉夫罗夫

我想出的是Print [$,N [Pi ^(Pi * Pi)]],给出了$ 80662.7。我尝试了Pi,E,+,*,^的各种组合(是我想过的,但是没有找到有效的使用方式),但是我从来没有尝试过!
梅尼·罗森菲尔德

$~Print~⌈E^(E!E)⌉带有左右一个字符的天花板字符将多一点,只有17个字节
jaeyong


6

JavaScript(Node.js),23字节,$ 65535

_=>"$"+ +(~~[]+`xFFFF`)

在线尝试!

这是我所能得到的最好的 atob,尽管还有很大的改进空间

要知道,没有短字符到ASCII转换功能会占用很多。

整天之后

JavaScript(Node.js),30字节,$ 78011

_=>"$"+`𓂻`.codePointAt(![])

在线尝试!

或:29个字节,$ 80020

_=>"$"+`򀀠`.codePointAt(!_)

哪里򀀠U+13894 INVALID CHARACTER

String.codePointAt!我完全忘记了这一点!

一个笑话(15B,$ 130000),一点都没有,只是为了好玩

_=>"$十三萬"

所以,为什么不_=>"$⑮萬"^ _ ^
tsh

2
我现在正在笑,因为我可以理解中文...
ericw31415 '18

怎么x1683F
古斯塔·范·德·沃尔

简单使用_=>"$"+parseInt('1V0I',36)也比您目前拥有的要高,因此您可能也想添加该功能。太糟糕了,您无法在JavaScript中将基数64转换为十进制...
Gust van de Wal,

不幸的是,@ GustVanDeWal您不能在代码中使用数字。
Shieru Asakoto


6

露比(Ruby),$ 119443

$><<?$<<?𝊓.ord

在线尝试!

最大整数输出为17个字节。Unicode字符为U + 1D293,十六进制为119443。


如果您想尝试一下,请$><<?$<<$$在长时间运行的系统上尝试使用10个字节。答案最大为177827。
AShelly

我认为您的意思是“十进制”,或者至少存在一些歧义。
jpmc18年


5

Japt,5个字节,262,144美元

'$+I³

测试一下


解释 I是Japt常量64,将其³立方化,然后'$+将其与美元符号连接。


很高兴我先检查了一下。我正要发布"${I³
Oliver


5

Befunge- 93,9字节,$ 192448

a>$",**.@

在线尝试!

输出$192448,仅比最大输出量少2美元和9美分。甚至可以与Befunge-98的正确实现一起使用,在这里甚至不必抛出无法识别的指令错误!

说明:

a>$        Basically no-ops
   "       Wrapping string that pushes the code and a lot of spaces to the stack
    ,      Print the $
     **    Multiply the byte values of a, > and a space
           62*97*32 = 192448
       .@  Print the number and terminate

5

Cubix,$ 155088(12字节)

*Ouo'ე'$/@

在线尝试!

一个有趣的问题是希望将其减少到7或8个字节,但事实证明这很困难。将ე和$字符压入堆栈,输出$,堆栈顶部的倍数,输出数字和暂停。仍然希望找到一个低字节选项

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.