100
\$\begingroup\$

In this challenge, you should write a program or function which takes no input and prints or returns a string with the same number of bytes as the program itself. There are a few rules:

  • You may only output bytes in the printable ASCII range (0x20 to 0x7E, inclusive), or newlines (0x0A or 0x0D).
  • Your code must not be a quine, so the code and the output must differ in at least one byte.
  • Your code must be at least one byte long.
  • If your output contains trailing newlines, those are part of the byte count.
  • If your code requires non-standard command-line flags, count them as usual (i.e. by adding the difference to a standard invocation of your language's implementation to the byte count), and the output's length must match your solution's score. E.g. if your program is ab and requires the non-standard flag -n (we'll assume it can't be combined with standard flags, so it's 3 bytes), you should output 5 bytes in total.
  • The output doesn't always have to be the same, as long as you can show that every possible output satisfies the above requirements.
  • Usual quine rules don't apply. You may read the source code or its size, but I doubt this will be shorter than hardcoding it in most languages.

You may write a program or a function and use any of the standard methods of providing output. Note that if you print the result, you may choose to print it either to the standard output or the standard error stream, but only one of them counts.

You may use any programming language, but note that these loopholes are forbidden by default.

This is , so the shortest valid answer – measured in bytes – wins.

Leaderboard

var QUESTION_ID=121056,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){var F=function(a){return a.lang.replace(/<\/?a.*?>/g,"").toLowerCase()},el=F(e),sl=F(s);return el>sl?1:el<sl?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

\$\endgroup\$
  • 2
    \$\begingroup\$ Related. Related. \$\endgroup\$ – Martin Ender May 17 '17 at 11:19
  • 20
    \$\begingroup\$ "Your code must not be a quine" but... but... it's tagged quine \$\endgroup\$ – Okx May 17 '17 at 11:21
  • 4
    \$\begingroup\$ @Okx Because it's a generalised quine, i.e. the required output depends on the source code. \$\endgroup\$ – Martin Ender May 17 '17 at 11:22
  • 4
    \$\begingroup\$ @MartinEnder You should probably disallow output by exit code, which is a default. If you allow it nearly every one byte program in nearly every language is allowed. One user has already done this \$\endgroup\$ – Ad Hoc Garf Hunter May 17 '17 at 22:37
  • 2
    \$\begingroup\$ @WheatWizard output by exit code is not a string, so it doesn't apply here. \$\endgroup\$ – Martin Ender May 18 '17 at 4:29

240 Answers 240

1
4 5 6
7
8
1
\$\begingroup\$

AsciiDots, 8 bytes

.v.
(*$#

This starts with two dots, then duplicates them both, and then outputs all of their values. Might be golf able down to 6 bytes

Try it online!

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

Or, 5 bytes

 fals

This returns false (this should be a five-character constant) onto the stack, which can be used later in the program (or not really, none of the current known instructions in Or access non-top items).

Explanation

From the IRC log:

14:01 < fungot> mroman_: the command to push false is ' f'

Since fungot had not yet presented the full language, all that we know in the current interpreter is that extra instructions do nothing.

 f    Push false onto the stack
  als All of those are recognized as NOPs in the current implementation.
| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Languages must have a known implementation to be valid here. \$\endgroup\$ – Ørjan Johansen Oct 18 '19 at 7:58
  • \$\begingroup\$ The known implementation is here. \$\endgroup\$ – user85052 Oct 18 '19 at 10:19
1
\$\begingroup\$

Wren, 2014 bytes

Fn.new{"1"*14}

Try it online!

Explanation

Fn.new{      } // Anonymous function
       "1"*14  // Returning the string "1" repeated 14 times
| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

W, 2 bytes

1_

Explanation

1  % Push 1
 _ % Negate this number
% Therefore outputs -1
| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

naz, 2 bytes

2o

Outputs 00.

Quite similar to my answer for Create output twice the length of the code.

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

MAWP, 13 bytes

43W2M[84W;1A]

Prints 14 space characters.

Try it!

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ Nice, but here codegolf.stackexchange.com/a/209253/92080 is a 1 byter :) \$\endgroup\$ – Dion Aug 8 at 10:45
  • \$\begingroup\$ I thought the . was required for output. Anyway, the question asks for an ASCII character so I made this. \$\endgroup\$ – Razetime Aug 8 at 10:50
  • 1
    \$\begingroup\$ Well, to be fair the output not appearing without a . was a bug that is now fixed, my bad. And 1 is also an ASCII character (49) \$\endgroup\$ – Dion Aug 8 at 14:25
0
\$\begingroup\$

Ohm, 5 bytes

αvssL

Explanation

αvssL
αv    push 'aeiou'
  ss  convert to string two times (NOP)
    L print without newline
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Pip, 4 bytes

L2P1

Try it online!

This prints 1\n1\n, at 4 bytes including the newlines.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Minimal-2D, 72 bytes

/D+++++++++L
 R/D          /LR/>>D     /LR
   R->++>+++<</UU   R->..</UU

Try it online!

Outputs 72 6s. This is BF in a 2D layout.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

yup, 12 bytes

0e:::::{0##}

Try it online!

Pushes 6 1s, and, while there are 1 on the top of the stack, output a 0 followed by a 1.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Jellyfish, 2 bytes

p0

Try it online!

Prints 0 and a trailing linefeed.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Rexx 15 Bytes

say left("",15)

Try it here

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Lua, 10 bytes

print(1e6)

Outputs:

1000000.0

Try it online!

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Javascript, 10 bytes

alert(1e9)

Nodejs repl (maybe breaking rule)

1
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Aceto, 9 1 byte

p

Prints the top value on the stack, an implicit 0.


Old solution (9 bytes):

p
¥×
19

Push a 1, push a 9. Multiply the (remaining) stack (by 9; → [1,1,1,1,1,1,1,1,1]).

Implode and print (prints 111111111).

The code is 9 bytes long in UTF-8 because ¥ and × take 2 bytes each.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Python 3 REPL, 2 bytes

1#

Prints 1 followed by a newline (\n)

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ 1; similarly works. \$\endgroup\$ – Mego May 21 '17 at 1:58
0
\$\begingroup\$

REXX 8 Bytes

say 9**8

Prints 43046721

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ This outputs a number but the challenge says it must be a string \$\endgroup\$ – caird coinheringaahing May 22 '17 at 15:09
  • \$\begingroup\$ "You may only output bytes in the printable ASCII range (0x20 to 0x7E, inclusive)" Digits fall in that range \$\endgroup\$ – theblitz May 22 '17 at 20:18
0
\$\begingroup\$

Python 2, 13 bytes

Code:

print 10**12

Output:

1000000000000

Character Count: 13

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ What language is this? \$\endgroup\$ – Martin Ender May 22 '17 at 14:42
  • \$\begingroup\$ Edited. Python 2. Made it in 88 bytes. First timer in code-golf. \$\endgroup\$ – Animesh Das May 22 '17 at 14:44
  • \$\begingroup\$ Welcome to PPCG then! What are the imports for? \$\endgroup\$ – Martin Ender May 22 '17 at 14:45
  • \$\begingroup\$ Initially I thought I could use the randrange() function from the file "random". "import math" is for validating the 1E19 I placed later on. \$\endgroup\$ – Animesh Das May 22 '17 at 14:47
  • \$\begingroup\$ I can see there are better ways to get through, though. For example, I could do away with "import random", since I'm not using randrange() here. \$\endgroup\$ – Animesh Das May 22 '17 at 14:48
0
\$\begingroup\$

shortC on modern Linux

8 bytes

Araise(6

Output (with a newline):

Aborted 

10 bytes

Araise(7);}

Output (with a newline):

Bus error 

11 bytes

Araise(14);}

Output (with a newline):

Alarm clock 

11 btyes

Araise(15);

Output (with a newline):

Terminated 

12 bytes

Araise(16);}

Output (with a newline):

Stack fault 

13 bytes

Araise(29);} 

Output (with a newline):

I/O possible 

24 bytes

main(){raise(9*(1+1+1));

Output (with a newline):

Profiling timer expired 
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Bean, 2 bytes

00000000: 253b                                     %;

Explanation

Implicitly prints a 2 followed by a newline. I arbitrarily decided it should output the amount of bytes the program is, but this will work with many single characters in the printable range.

Try it online!

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

2Col, 2 bytes [non-competing]

=0

Output:

0

Zero, with a trailing newline

Explanation:

    No input, therefore Cell initializes at 0
=0  Set Cell value to 0 and return Cell value
    Implicit: Print return value followed by a newline
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

JavaScript, 32 bytes

Code: btoa(01234567891011121314151617)

Output: MS4yMzQ1Njc4OTEwMTExMjEzZSsyNA==

console.log(btoa(01234567891011121314151617))
console.log(btoa(01234567891011121314151617).length)
console.log("btoa(01234567891011121314151617)".length)

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Invalid, without explicit output you need to say that it's in a repl \$\endgroup\$ – ASCII-only Jan 21 '19 at 7:51
  • \$\begingroup\$ Not sure why you're bothering with a thread/post that's 2 years old, but the console.log is for the purpose of the code snippet preview only. Put those commands directly into the browser console and you'll see the correct result. \$\endgroup\$ – Jamie Barker Jan 21 '19 at 8:35
  • \$\begingroup\$ Well, yeah if you're using console.log it would be "Javascript (<browser name>)". As for the reason why I'm bothering, just because it's two years old doesn't mean it's allowed to be incorrect :P (plus, this question was active recently so I clicked on it and saw this) \$\endgroup\$ – ASCII-only Jan 21 '19 at 9:28
  • \$\begingroup\$ Well, it's JavaScript, it's never going to win any Code Golf xD \$\endgroup\$ – Jamie Barker Jan 21 '19 at 10:22
  • \$\begingroup\$ Well, remember here you compete within the same language (well, kinda). The goal here is more to basically catalogue shortest solutions, I guess? \$\endgroup\$ – ASCII-only Jan 21 '19 at 10:26
0
\$\begingroup\$

Check, 3 bytes (Non-competing)

>]p

Output:

[0]

> pushes 0, ] wraps it in an array, and p prints it.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

GolfScript, 2 bytes

!#

The output is:

1

Try it online!

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

j, 2 bytes

!4

    returns 24 (factorial 4)
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

Tcl/Tk, 18

pack [text .txt 1]

ouputs

unknown option "1"
| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

j, 3 bytes

i.2

output...

0 1

(3 bytes including space)

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ If you can golf your answer down, please don't post a separate answer, just edit in the new solution. \$\endgroup\$ – caird coinheringaahing Jul 22 '17 at 7:36
0
\$\begingroup\$

ArnoldC, 309 bytes

Easy.

IT'S SHOWTIME
HEY CHRISTMAS TREE S
YOU SET US UP 1
HEY CHRISTMAS TREE T
YOU SET US UP 0
STICK AROUND S
GET TO THE CHOPPER T
HERE IS MY INVITATION T
GET UP 1
ENOUGH TALK
TALK TO THE HAND "SS"
GET TO THE CHOPPER S
HERE IS MY INVITATION  103
LET OFF SOME STEAM BENNET T
ENOUGH TALK
CHILL
YOU HAVE BEEN TERMINATED

Note the double space between HERE IS MY INVITATION and 103 to have the good amount.

Golfable.

Try it online!

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

ROOP, 7 bytes

/rn/
ha

Try it online!

print IVXLCDM


The constant rn represents the string containing the Roman numerals.

The h operator terminates the program and prints all existing objects. The a operator is only to reach 7 bytes (there is no constant that has 6 characters).

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

J REPL, 2 bytes

+1

This outputs 1, then a newline.

| improve this answer | |
\$\endgroup\$
  • 2
    \$\begingroup\$ TIO doesn't execute the code in a REPL. You need echo or similar in a full program. \$\endgroup\$ – Dennis May 19 '17 at 2:31
1
4 5 6
7
8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.