Construct a full program which outputs Hello, World!
. The score of your submission will be equal to the sum of all of the ASCII values of the distinct characters. The lowest score wins!
Rules
- It must be a full program which takes no input
- It must only print to STDOUT, nothing else
- It must be strictly less than 1000 bytes long
- It may only include printable ASCII (meaning no
\n
allowed) - The objective is to find the lowest score for every language, so no answer will be marked "accepted"
Example
Here is an example submission in Python, which has a score of 1279:
print"Hello, World!"
Finally, here is a TIO link to score your submission.
45 Answers 45
C (gcc) -zexecstack
-Wl,-e$
-nostartfiles
on Linux x86-64, (削除) 876 (削除ここまで) 914 bytes, score (削除) 798 (削除ここまで) 293
$=1111+1111+1111+111+111-11-11-11-11+1+1+1;$$=1111111111+111111111-11111111+1111111+1111111-111111+1111+1111+111+111+111+111+111-11-11-11-11+1+1+1+1+1;$$$=111111+111111-11111-1111+111+111+111-11-1-1-1-1-1;$$$$=111111111+111111111+11111111+11111111+11111111+1111111+1111111+111111-1111-1111-1111-1111-111-111-111+11+11+11+11+1+1+1+1+1;$$$$$=1111111111+1111111111-111111111-111111111-111111111-111111111+11111111+11111111+11111111+11111111-1111111-1111111-1111111-111111-111111-111111+11111+11111-1111+111+111+11+1;$$$$$$=111111111+111111111+111111111+111111111+111111111-11111111-1111111-1111111-1111111-1111111-111111-111111+1111+1111+1111+1111+1111-111-111-111+11+11-1-1;$$$$$$$=1111111111+1111111111-111111111-111111111-111111111-111111111+11111111+11111111+11111111+11111111-1111111-1111111-111111-111111-111111-111111-111111-1111-1111-1111-1111-1111+11+11+11+11+1;$$$$$$$$=11111-1111-1111-111-111-111-11+1+1+1;
Charset: (削除) A[]={+,-1};
(削除ここまで)1+-$=;
Same method as the previous answer, with even more hacking to supply a custom entry point named $
(which has the smallest ASCII value among a-zA-Z_$
). Credit to this SO answer for identifying the flags and assembly setup to make this work. Also got a hint from ceilingcat's awesome linker hack to remove []{}
from the code.
Assembly: (NASM syntax)
bits 64
global _start
_start:
mov edx, 13
pop rax
push rax
lea rsi, [rel s]
pop rdi
syscall
s: db "Hello, World!"
Uses the argc=1
set up on the stack to load the value 1 to rax
and rdi
. The instructions are slightly mixed up in order to get the minimal code length in C.
Here is the Python script that generates the "ones decomposition" from the xxd -i
output (C include-style hex output) of the compiled binary.
C (gcc) -zexecstack
on Linux x86-64, 891 bytes, score 1154
main[]={1111+1111+1111+111+111-11-11-11-11+1+1+1,1111111111-111111111-111111111+11111111-1111111-111111-111111-111111-111111+11111-1111-1111-1111-1111+111+111+111+11,1+1+1+1,111111111-11111111-11111111-1111111-1111111-1111111-1111111+111111+111111+111111+111111+11111+11111+11111+11111-111-111-111-111-111-11-11-11,1111111111+1111111111-111111111-111111111-111111111-111111111+11111111+11111111+11111111+11111111-1111111-1111111-1111111+111111+11111+11111+11111+11111-1111-111-111+11+11+11,1111111111+111111111+111111111+111111111+11111111+11111111-1111111-1111111-1111111-1111111-111111-111111-111111-111111-11111-11111-11111-11111-11111+1111+1111+1111+1111-111-111-111-11-1-1-1-1,1111111111+111111111+111111111+111111111+111111111+111111111+11111111+11111111-1111111-1111111-1111111-1111111+111111+111111+111111+11111+11111+11111+11111+11111-1111-1111-1111-1111-111+11-1-1-1-1-1,11+11+11};
Uses ceilingcat's minimal Turing-complete charset main[]={1+,};
, plus -
to meet the code length limit.
Assembly: (NASM syntax)
bits 64
global _start
_start:
mov edx, 13
lea rsi, [rel s]
mov eax, edi
syscall
s: db "Hello, World!"
Essentially calls write
syscall once, and goes into arbitrary instructions formed by the string literal, causing segfault.
-
1\$\begingroup\$ This is a brilliant solution (I’ve upvoted it). But I think the language should be "C (gcc)/x86". It won’t work using gcc on a non-x86 machine. \$\endgroup\$Mitchell Spector– Mitchell Spector2020年03月25日 13:33:10 +00:00Commented Mar 25, 2020 at 13:33
-
\$\begingroup\$ In fact, I just tried it on two x86 machines (one Linux and one OS X), and it failed to print "Hello, World!" on both. I don't know what the difference is between these and TIO, where it worked. \$\endgroup\$Mitchell Spector– Mitchell Spector2020年03月25日 14:15:47 +00:00Commented Mar 25, 2020 at 14:15
-
\$\begingroup\$ One more comment: This program writes an error message to stderr (when it crashes), which I understood wasn't allowed in OP's specs ("It must only print to STDOUT, nothing else"). I could reduce my dc score, for instance, if spurious output to stderr was allowed, and that's probably true of some of the other solutions as well. \$\endgroup\$Mitchell Spector– Mitchell Spector2020年03月25日 14:29:59 +00:00Commented Mar 25, 2020 at 14:29
-
\$\begingroup\$ @MitchellSpector This code is supposed to work in x86-64, with executable stack (
-zexecstack
flag in the compiler/linker). And as pointed out in the linked answer, you might needconst
in some environments. The error messages are printed by the OS, not the program. \$\endgroup\$Bubbler– Bubbler2020年03月26日 00:58:43 +00:00Commented Mar 26, 2020 at 0:58 -
\$\begingroup\$ Thanks -- I missed that flag because it wasn't included with the language name in the answer heading, but it's clearly needed. That got it to work correctly on my Linux system. But I still can't get it to work under OS X, where I believe the equivalent compiler option is
-Wl,-allow_stack_execute
-- but even with that option, it doesn't print "Hello, World!". I tried it with and without theconst
keyword beforemain
. If you know how to get this to work under OS X, I'd be interested. \$\endgroup\$Mitchell Spector– Mitchell Spector2020年03月26日 01:54:04 +00:00Commented Mar 26, 2020 at 1:54
CJam, 652 bytes, score 120
'))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))''(((((((')))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))''((((((
Uses ')(
.
HQ9+, 1 byte, score 72
H
There is no TIO implementation for HQ9+
.
Malbolge, 71 bytes, 3963 points
(=<`#9]=}5YXy1Uvv-Q+q)Mn&Jk#j!EC$dc.?}_<)L'8%oXW2qj|Q@yx+iba'Hd]\E!YX|z
Uses the following unique characters
!#$%&'()+-.12589<=?@CEHJLMQUWXY\]_`abcdijknoqvxyz|}
Wolfram Language (Mathematica), 321 bytes, score 399
charset: 013456円
043円1333311円05313311円0531133円135円133円043円13311円0534011円0534031円135円133円043円1331343円05311354円135円13331円05341円054101円0544円053104円0544円053104円054111円05444円0541円05331円05443円05344円054111円054114円0544円053104円054100円05433円135円135円135円046円1330円133円1330円0540円135円135円133円116円141円155円145円163円133円135円133円133円043円135円135円135円046円135円
I feel it's best to try to explain this one. First, Mathematica allows character inputs with octal triplets (From this point on, I'll be using my local copy), after decoding, looks like so
#[1000+31111][#[3304+11135][#[10000+13003][31+41,101,4+104,4+104,111,44,1+31,43+44,111,114,4+104,100,33]]]&[0[[0,0]][Names[][[#]]]&]
All of the addition is just to avoid getting a 2, 7, 8, or 9, which in octal have 2s and 7s, which are trivially avoidable, all the other characters are the minimum needed to get Names[]
. When the actual functions are shown,
Print[FromCharacterCode[List[72,101,108,108,111,44,32,87,111,114,108,100,33]]]
Where all the functions are hidden inside a Names[][[1234]]
so that they can all be numerically decided, but Names[]
, at minimum, needs 13456円
to derive everything else, the 0 is needed to turn Names's string output into Functions, as 0[[0,0]]
returns Symbol
.
I know that after making this whole thing it can be golfed to do without 0, as the only time it comes up is in addition, inside the octal for the +
symbol, and getting the symbol header, meaning that if 0 can be derived elsewhere then in the charset 0 can be switched to +, lowering the score by 5. All it would need is to not use commas inside list. The only function that I recall that can do this is the Append family, but calling Append instead of each comma makes the program over 2k in size.
In case you want to see how it was generated, I will put most of my code here
brainfuck, 134 score
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.-------------------------------------------------------------------.
Alas, could have scored 89 if not for the 1000 character limit.
Boolfuck, 102 score
;;;+;+;;+;+;+;+;+;+;;+;;+;;;+;;+;+;;+;;;+;;+;+;;+;+;;;;+;+;;+;;;+;;+;+;+;;;;;;;+;+;;+;;;+;+;+;+;+;+;;;;+;+;;+;;+;+;;+;;;+;;;+;;+;+;;+;;;+;+;;+;;+;+;+;;;;+;
"Standard".
-
\$\begingroup\$ I was going to make a brainf*** solution (generated with Python) and it was exactly your solution, so I upvoted it. Nice going! :) \$\endgroup\$KinuTheDragon– KinuTheDragon2021年06月07日 21:25:51 +00:00Commented Jun 7, 2021 at 21:25
Knight, (削除) 460 (削除ここまで) (削除) 383 (削除ここまで) 442 bytes, score (削除) 268 (削除ここまで) (削除) 236 (削除ここまで) 226
-32 score thanks to @Adam by utilizing A1
-10 score thanks to @emanresu A and @UnrelatedString by using E
to EVAL O"Hello, World"
instead of using O
directly
E+++++++++++++++A+11+11+11+11+11+11+11+1+1A1A+11+11+11+1A1A+11+11+11+11+11+11+1+1+1+1+1+1A1A+11+11+11+11+11+11+11+11+11+1+1A1A+11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1A1A+11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1A1A+111A1A+11+11+11+11A1A+11+11+1+1+1+1+1+1+1+1+1+1A1A+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1A1A+111A1A+111+1+1+1A1A+11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1A1A+11+11+11+11+11+11+11+11+11+1A1A+11+11+11A1A+11+11+11+1A1
Characters used: E+A1
(Code used to generate this Knight code: Try It Online!)
-
\$\begingroup\$ You can actually do this without spaces, e.g. controlc.com/d04bd5eb. You can probably modify your code to get rid of spaces as well. \$\endgroup\$97.100.97.109– 97.100.97.1092022年08月07日 23:02:56 +00:00Commented Aug 7, 2022 at 23:02
-
\$\begingroup\$ Here's the equivalent for your code: controlc.com/8ce83f01 \$\endgroup\$97.100.97.109– 97.100.97.1092022年08月07日 23:09:55 +00:00Commented Aug 7, 2022 at 23:09
-
\$\begingroup\$ @Adam Wow doing
A1
is actually super smart, editing my answer now. \$\endgroup\$Aiden Chow– Aiden Chow2022年08月08日 06:23:19 +00:00Commented Aug 8, 2022 at 6:23 -
1\$\begingroup\$ If you have the willpower,
E
has a lower charcode thanO
. \$\endgroup\$emanresu A– emanresu A2022年08月08日 06:44:12 +00:00Commented Aug 8, 2022 at 6:44 -
1\$\begingroup\$ @UnrelatedString Bro that's actually big brain, wowow \$\endgroup\$Aiden Chow– Aiden Chow2022年08月08日 07:25:39 +00:00Commented Aug 8, 2022 at 7:25
Grass, score 324, 623 bytes
wvwwWWwWWWwvWwwwwWWwWWWwWWWWwWWWWWwWWWWWWwWWWWWWWwWwwwwwwwwwwwwWWWWwWWWWWWWwWWWWWWWWWWWWWWwWWWWWWWWWWWwwWWWWWWWWWWwwWWWWWWWWWWWWwWWWWWWWWWWwwWWWWWWWWWWwwwwwwwWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWwwwwwWWWWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwWWwwwwwwwWWWwwwwwwwWWWWwWWWWWwwwwwwwwWWWWWWwwwwwwwwwwwwwwwwwWWWWWWWwwwwwwwwwwwwwwwwwwwwwWWWWWWWWwwwwwwwwwwwwwwwwwWWWWWWWWWwwwwWWWWWWWWWWwwwwwwwwwwwWWWWWWWWWWWwwwwwwwWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwww
Stuck, 0 bytes, score 0
An empty program prints "Hello, World!"
Just as suggested in the comments, Stuck wins!
-
6\$\begingroup\$ Can we please stop the low-effort stuff? 1+ though. \$\endgroup\$TwilightSparkle– TwilightSparkle2020年09月10日 05:22:19 +00:00Commented Sep 10, 2020 at 5:22
-
\$\begingroup\$ Also 0-byte: BrainCrash (2008) \$\endgroup\$IY5dVSjABEeV– IY5dVSjABEeV2024年09月23日 05:53:11 +00:00Commented Sep 23, 2024 at 5:53
dc, (削除) 106 (削除ここまで) (削除) 652 (削除ここまで) (削除) 192 (削除ここまで) 428 bytes, score (削除) 332 (削除ここまで) (削除) 272 (削除ここまで) (削除) 272 (削除ここまで) 204
11 11+11+11+11+11+1+1+1+1+1+1+P11 11+11+11+11+11+11+11+11+1+1+P11 11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+P11 11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+P11 11+11+11+11+11+11+11+11+11+1+P11 11+11+11+P11 11+1+1+1+1+1+1+1+1+1+1+P11 11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1+P11 11+11+11+11+11+11+11+11+11+1+P11 11+11+11+11+11+11+11+11+11+1+1+1+1+P11 11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+P11 11+11+11+11+11+11+11+11+1+P11 11+11+P
4 characters used: +1P
and the space character.
-
\$\begingroup\$ You need to sum the codepoints of all characters you use in your program. \$\endgroup\$user92069– user920692020年03月24日 05:25:40 +00:00Commented Mar 24, 2020 at 5:25
-
\$\begingroup\$ @a'_' You're right - I misread the scoring in the challenge. It's fixed. \$\endgroup\$Mitchell Spector– Mitchell Spector2020年03月24日 05:29:44 +00:00Commented Mar 24, 2020 at 5:29
-
\$\begingroup\$ You may be interested in the bounty to codegolf.stackexchange.com/q/11336 for the dc solution with the lowest number of unique characters \$\endgroup\$user41805– user418052021年02月06日 11:59:02 +00:00Commented Feb 6, 2021 at 11:59
-
\$\begingroup\$ @user41805 Thanks, I hadn’t seen the bounty. (I haven’t had time to do any code golf for a while.) \$\endgroup\$Mitchell Spector– Mitchell Spector2021年02月07日 02:17:44 +00:00Commented Feb 7, 2021 at 2:17
C (gcc), (削除) 344 (削除ここまで) \$\cdots\$ (削除) 254 (削除ここまで) 242 bytes, score (削除) 1624 (削除ここまで) 1575
Lowered score by 49 thanks to Arnauld!!!
Saved 12 bytes thanks to ceilingcat!!!
h;t;u;i;a;main(c){u+=u=i+=i=a=c+c+c;t=u+u+u;putchar(putchar(t+t)+u+u+a+c+c);putchar(putchar(putchar(h=t+t+t))+a);putchar(t+i+c+c);putchar(u+u+i+c+c);putchar(t+t+u+a);putchar(h+a);putchar(h+i);putchar(h);putchar(t+t+u+u+a+c);putchar(u+u+i+a);}
Uses characters: ()+;=achimnprtu{}
-
\$\begingroup\$ You can get rid of
1
by retrieving it fromargc
, leading to 1575 points. \$\endgroup\$Arnauld– Arnauld2020年03月24日 17:17:43 +00:00Commented Mar 24, 2020 at 17:17 -
\$\begingroup\$ @Arnauld Very clever - thanks! :-) \$\endgroup\$Noodle9– Noodle92020年03月24日 17:24:58 +00:00Commented Mar 24, 2020 at 17:24
-
\$\begingroup\$ @Arnauld Why not? Thanks! :-) \$\endgroup\$Noodle9– Noodle92020年03月24日 17:37:52 +00:00Commented Mar 24, 2020 at 17:37
-
\$\begingroup\$ @Arnauld Knocked down to a quarter K - thanks! :-) \$\endgroup\$Noodle9– Noodle92020年03月24日 17:50:07 +00:00Commented Mar 24, 2020 at 17:50
-
Go, (削除) 61 (削除ここまで) 48 bytes, score (削除) 2527 (削除ここまで) 2401
package main;func main(){print("Hello, World!")}
The boilerplate hello world, compressed onto 1 line.
- -13 bytes and -126 score from printing to STDERR instead.
-
\$\begingroup\$ 48 bytes \$\endgroup\$IY5dVSjABEeV– IY5dVSjABEeV2024年09月23日 05:56:01 +00:00Commented Sep 23, 2024 at 5:56
Brain-Flak, 618 bytes, score 265
((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())()()()()()()()())()()()()()())[()()()])[()()()()()()()()()()()()()()()()()()()()()()()()])(((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())()()()()()()()()()()()())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())[()()()]))[()()()()()()()])[()()()()()()()()()()()()()()()()()()()()()()()()()()()()()])
Used characters: ()[]
Uses ()
(one), (...)
(sum and push), [...]
(negate). Can definitely be shorter by using []
(stack height) but it's not the point of the challenge (as long as the code is under 1000 bytes). Looks like the program can't fit into 1000 bytes using only ()
and (...)
.
Python 2, 574 bytes, score 564
exec"%c"%(111+1)+"%c"%(111+1+1+1)+"%c"%(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1)+"%c"%(11+11+11+11+11+11+11+11+11+11)+"%c"%(111+1+1+1+1+1)+"%c"%(11+11+11+1+1+1+1+1+1)+"%c"%(11+11+11+11+11+11+1+1+1+1+1+1)+"e%c"%(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1)+"%c"%(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1)+"%c"%111+"%c"%(11+11+11+11)+"%c"%(11+11+1+1+1+1+1+1+1+1+1+1)+"%c"%(11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1)+"%c"%111+"%c"%(111+1+1+1)+"%c"%(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1)+"%c"%(11+11+11+11+11+11+11+11+11+1)+"%c"%(11+11+11)+"%c"%(11+11+11+1+1+1+1+1+1)
Used characters: exc"%(1+)
Constructs the string print'Hello, World!'
using the characters "%c(1+)
, then exec
s it. Using the raw print
with any single extra character costs more than this.
05AB1E, score: 282 (251 bytes)
0>>>0>>>>>>>>>0>0>>>0>>>>>>>>0>>>>>0>>>0 0>>>>>>0>>>>>>>>0>>>>>>>>0>>>>0>>>>>>>0>>0 0>>>>>>>0>>>0 0>>>>>0>>>>>>>>>0>>0>>>0>0>>>>>>0 0>>>>>>>J 0>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>B
Five characters used: 0> JB
Explanation:
- First we construct the number
39138530688472073059231607
. We do this per digit, by pushing a0
and increasing it by 1 per>
, after which the entire stack of digits is joined together withJ
. - Then it pushes another
0
with 107>
s to get the number107
. - After which it will convert
39138530688472073059231607
to base-107 withB
, which is"Hello, World!"
.
C (gcc), 540 bytes, score 1563
main(){putchar(11+11+11+11+11+11+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+1+1);putchar(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+11+1);putchar(11+11+11+11);putchar(11+11+1+1+1+1+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+11+1);putchar(11+11+11+11+11+11+11+11+11+11+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1);putchar(11+11+11+11+11+11+11+11+11+1);putchar(11+11+11);}
This is just a straightforward solution that prints the ASCII code of each character in turn, like some of the other solutions here. I'm not aware of any tricky way to reduce the score in C.
-
\$\begingroup\$ 287 bytes, score 1563 \$\endgroup\$ceilingcat– ceilingcat2020年09月19日 04:49:23 +00:00Commented Sep 19, 2020 at 4:49
Nim, 387 bytes, score 601
ecHO cHR 11+11+11+11+11+11+1+1+1+1+1+1,cHR 11+11+11+11+11+11+11+11+11+1+1,cHR 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,cHR 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,cHR 111,cHR 11+11+11+11,cHR 11+11+1+1+1+1+1+1+1+1+1+1,cHR 11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1,cHR 111,cHR 111+1+1+1,cHR 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,cHR 11+11+11+11+11+11+11+11+11+1,cHR 11+11+11
Chars: ecHRO, +1
Bits, score: 97
There are only 2 distinct characters in Bits, 0
and 1
. These have ASCII values of \48ドル\$ and \49ドル\$, so the score is \97ドル\$.
If you're interested, this is actually only 10 bytes (80 bits).
10010000001010011000011000011110111000111111010111001111010010001100000100011101
Explanation
1001000 // H
000101 // e
001100 // l
001100 // l
001111 // o
011100 // ,
011111 //
1010111 // W
001111 // o
010010 // r
001100 // l
000100 // d
011101 // !
// [implicitly joined and output]
Gol><>, 234 bytes, score 259
llllllll+++l+++++lllllllllllll+++++l++++++++llllllllllll+++++l+l+++++++llllllllllll+++l+++++++++lllllllllll+++l++++++++lllllll++ll++l+++++llll+++l+l+lll++l+$llllllll++++++l++l+llllll+++lll+++++llllllll+++++++lll++l+l+l+llllll++++l++$H
Used characters: l
(length of stack), +
(add top two numbers), $
(swap top two numbers), H
.
$
was needed because some characters (space, H) were impossible to create at that specific stack height; it is cheaper than any number literal (minimum being 0).
Gol><>, 182 bytes, score 315
ssP0ssssssPPPP0ssssssPPPPPPPPPPPP0sssssssPP0ssssssPPPPPPPPPPPPPPP0sssssPPPPPPP0ss0ssPPPPPPPPPPPP0ssssssPPPPPPPPPPPPPPP0ssssssPPPPPPPPPPPP0ssssssPPPPPPPPPPPP0ssssssPPPPP0ssssPPPPPPPPH
Used characters: 0
(push zero to the stack), s
(add 16 to top), P
(increment top), H
(halt and print everything on the stack as characters).
Rust, 35 bytes, Score: 1916
fn main(){print!("Hello, World!")}
I don't know if you can get any shorter in Rust.
naz, 732 bytes, score 372
1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1o1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1o1a1a1a1a1a1a1a1o1o1a1a1a1o1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1o1s1s1s1s1s1s1s1s1s1s1s1s1o1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1o1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1o1a1a1a1o1s1s1s1s1s1s1o1s1s1s1s1s1s1s1s1o1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1o
Uses 1
, a
, s
and o
.
Without the size restriction, naz -u
could achieve a theoretical score of 257 by foregoing s
.
-
2\$\begingroup\$ But the article says "Every line of code must be exactly 21 characters" \$\endgroup\$user100411– user1004112021年03月30日 13:46:02 +00:00Commented Mar 30, 2021 at 13:46
Perl 5, 386 bytes, score = 818
say chr 11+11+11+11+11+11+1+1+1+1+1+1,chr 11+11+11+11+11+11+11+11+11+1+1,chr 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,chr 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,chr 111,chr 11+11+11+11,chr 1+1+1+1+1+1+1+1+1+1+11+11,chr 11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1+1,chr 111,chr 111+1+1+1,chr 11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1,chr 11+11+11+11+11+11+11+11+11+1,chr 11+11+11
Pyth, 430 bytes, score 191
++++++++++++C+++++++++++11 11 11 11 11 11 1 1 1 1 1 1C++++++++++11 11 11 11 11 11 11 11 11 1 1C+++++++++++++++++11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1C+++++++++++++++++11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1C111C+++11 11 11 11C+++++++++++11 11 1 1 1 1 1 1 1 1 1 1C++++++++111 1 1 1 1 1 1 1 1C111C+++111 1 1 1C+++++++++++++++++11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1C+++++++++11 11 11 11 11 11 11 11 11 1C++11 11 11
-
2\$\begingroup\$ As this is code challenge and has special scoring, please also specify "score 119". \$\endgroup\$manatwork– manatwork2021年03月31日 01:57:24 +00:00Commented Mar 31, 2021 at 1:57
Explore related questions
See similar questions with these tags.
exc="%
(which would have a score of452
), but it would be insanely long without newline. \$\endgroup\$exc%'(1+)
, no newline. CJam can do it in just 3:')~
. \$\endgroup\$