57
\$\begingroup\$

I'm honestly surprised that this hasn't been done already. If you can find an existing thread, by all means mark this as a duplicate or let me know.

Input

Your input is in the form of any positive integer greater than or equal to 1.

Output

You must output the sum of all integers between and including 1 and the number input.

Example

 In: 5
     1+2+3+4+5 = 15
Out: 15

OEIS A000217 — Triangular numbers: a(n) = binomial(n+1,2) = n(n+1)/2 = 0 + 1 + 2 + ... + n.

Leaderboard

Run the code snippet below to view a leaderboard for this question's answers. (Thanks to programmer5000 and steenbergh for suggesting this, and Martin Ender for creating it.)

var QUESTION_ID=133109,OVERRIDE_USER=69148;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){return e.lang>s.lang?1:e.lang<s.lang?-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} /* font fix */ body {font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;} /* #language-list x-pos fix */ #answer-list {margin-right: 200px;}
<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\$
  • 5
    \$\begingroup\$ Closely related \$\endgroup\$ – FryAmTheEggman Jul 18 '17 at 20:36
  • \$\begingroup\$ @FryAmTheEggman Sorry - had a bit of a brain fart there. I see what you mean. \$\endgroup\$ – GarethPW Jul 18 '17 at 20:45
  • 2
    \$\begingroup\$ @Aaron you got ninja'd by Husk, which was just posted with a 1 byte solution \$\endgroup\$ – Skidsdev Jul 18 '17 at 21:35
  • 7
    \$\begingroup\$ I suggest a stack snippet. \$\endgroup\$ – programmer5000 Jul 19 '17 at 11:42
  • 1
    \$\begingroup\$ Related: minecraftforum.net/forums/off-topic/… \$\endgroup\$ – Jerry Jeremiah Jul 27 '17 at 12:20

146 Answers 146

2
\$\begingroup\$

ArnoldC, 301 bytes

Well if Leo can find a way to do it in one byte, this is my way of throwing in the towel.

With the language based on the guy who never surrenders.

(And studying for the precalc final, you know, n(n+1)/2 is a formula I won't forget now, right?)

As of now, there's not really a way to take input in from the console from Try It Online, but this guy supposedly added something here.

Assuming that works, this code should do:

IT'S SHOWTIME
HEY CHRISTMAS TREE n
YOU SET US UP 0
GET YOUR ASS TO MARS n
DO IT NOW
WHO IS YOUR DADDY AND WHAT DOES HE DO
HEY CHRISTMAS TREE a
YOU SET US UP n
GET TO THE CHOPPER a
HERE IS MY INVITATION a
GET UP 1
YOU'RE FIRED n
HE HAD TO SPLIT 2
ENOUGH TALK
TALK TO THE HAND a
YOU HAVE BEEN TERMINATED

If not, this should work, manually assigning variable n (although it's a bit against the challenge)

IT'S SHOWTIME
HEY CHRISTMAS TREE n
YOU SET US UP 3
HEY CHRISTMAS TREE a
YOU SET US UP n
GET TO THE CHOPPER a
HERE IS MY INVITATION a
GET UP 1
YOU'RE FIRED n
HE HAD TO SPLIT 2
ENOUGH TALK
TALK TO THE HAND a
YOU HAVE BEEN TERMINATED

Try it online!

\$\endgroup\$
2
\$\begingroup\$

Pyt, 1 byte

Try it online!

Explanation:

               implicit input
 △             compute the nth triangle number
\$\endgroup\$
  • \$\begingroup\$ Can you give a link to the codepage? \$\endgroup\$ – Zacharý Dec 24 '17 at 20:11
  • \$\begingroup\$ It's at the beginning of the interpreter2 file - the language is still a work in progress \$\endgroup\$ – mudkip201 Dec 24 '17 at 20:34
  • \$\begingroup\$ I just added a link to the codepage \$\endgroup\$ – mudkip201 Jan 12 '18 at 1:11
  • \$\begingroup\$ 1 byte \$\endgroup\$ – caird coinheringaahing Jan 28 '18 at 21:04
  • \$\begingroup\$ @cairdcoinheringaahing I never got around to editing all of my old answers once I made Pyt take input implicitly. I've edited some of them, but not all \$\endgroup\$ – mudkip201 Jan 28 '18 at 21:07
1
\$\begingroup\$

PowerShell, 22 18 bytes

param($n)$n*++$n/2

Try it online!

Saved 4 bytes thanks to FryAmTheEggman. Uses Gauss' formula. Ho-hum.

\$\endgroup\$
  • \$\begingroup\$ @FryAmTheEggman You'd think so, and you'd be right. :p \$\endgroup\$ – AdmBorkBork Jul 18 '17 at 20:53
1
\$\begingroup\$

CJam, 6 bytes

ri),:+

Try it online!

Explanation

ri    e# Read integer n
)     e# Add 1
,     e# Range from 0 to input argument minus 1
:+    e# Fold addition over array. Implicitly displa
\$\endgroup\$
1
\$\begingroup\$

BLua, 32 bytes

r=0;for i=1,n r=r+i end;return r

Try it out (Vanilla Lua version, 53 bytes)

I'm not very good at this

\$\endgroup\$
1
\$\begingroup\$

Swift, 13 bytes

Anonymous function:

{$0*($0+1)/2}

You can call it like this:

print({$0*($0+1)/2}(5))

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Mathematica, 9 bytes

#(#+1)/2&

or, at 11 bytes,

Tr@Range@#&
\$\endgroup\$
1
\$\begingroup\$

AutoHotkey, 22 bytes

A(n){return n*(n+1)/2}

Defines a function that takes parameter n, and returns n*(n+1)/2, which is the nth triangle number, as shown in Leo's Husk answer.

\$\endgroup\$
  • \$\begingroup\$ Are you sure about the - operator? \$\endgroup\$ – Olivier Grégoire Jul 18 '17 at 22:36
  • \$\begingroup\$ @OlivierGrégoire Sure that it's the subtraction operator? I'm as sure as the AHK docs are \$\endgroup\$ – Skidsdev Jul 18 '17 at 22:38
  • \$\begingroup\$ Okay, it's just seems weird given that 1+...+n is usually equals to n*(n+1)/2 in maths, not n*(n-1)/2, but I don't know AutoHotkey and how it does maths, so I had to ask. \$\endgroup\$ – Olivier Grégoire Jul 18 '17 at 22:44
  • \$\begingroup\$ @OlivierGrégoire Oh right yeah no I'm a turd that's supposed to be a + \$\endgroup\$ – Skidsdev Jul 18 '17 at 22:53
1
\$\begingroup\$

Tcl, 27 bytes

proc T n {expr $n*($n+1)/2}

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Casio Basic, 9 bytes

(n+1)n/2

8 bytes for the code, +1 to add n as parameter.

\$\endgroup\$
1
\$\begingroup\$

Factor, 12 bytes

[ iota sum ]

Input is given as an argument to this anonymous function (quotation).

\$\endgroup\$
1
\$\begingroup\$

Terrapin Logo, 16 bytes

OP (1+:N)*(:N/2)
\$\endgroup\$
1
\$\begingroup\$

Commentator, 22 bytes

//
;-} {-
 {-  -}<!-}!

Try it online!

\$\endgroup\$
1
\$\begingroup\$

GolfScript, 7 6 bytes

~.)2/*

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Pip, 7 bytes

a*++a/2

Try it online!

\$\endgroup\$
1
\$\begingroup\$

><>, 20 15 bytes

:1-:?!v
n?=1l+<

@notatree saved me a couple bytes!

Try it online!

\$\endgroup\$
  • \$\begingroup\$ Nice! You can save a byte by turning the second line into v?=1l+<, or if you don't mind exiting with an error, replace the second line with n?=1l+< and remove the last two lines. \$\endgroup\$ – Not a tree Jul 19 '17 at 7:42
  • \$\begingroup\$ @Notatree Thanks! \$\endgroup\$ – steenbergh Jul 19 '17 at 7:55
1
\$\begingroup\$

shortC, 44 bytes

main(n){scanf("%d",&n);printf("%d",n*(n+1)/2

Try it online!

Just a shortCed version of this. Any help would be appreciated.

\$\endgroup\$
1
\$\begingroup\$

Carrot, 9 bytes

#^F+1/2*$

Explanation:

#  //Set the string stack to the input
^  //Convert to operations mode
F  //Change to float stack
+1 //Add one to the stack
/2 //Divide the stack by 2
*$ //Multiply the stack by the input
   //Implicitly output the result
\$\endgroup\$
1
\$\begingroup\$

Befunge, 9 bytes

&:1+*2/.@

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Gaia, 2 bytes

+⊢

This is reduce by addition +, which implicitly casts numbers to ranges beforehand.

You could also do ┅Σ (range and sum Σ), which is still 2 bytes.

\$\endgroup\$
1
\$\begingroup\$

Clojure, 31 23 16 bytes

8 bytes saved thanks to @cliffroot

#(/(+(* % %)%)2)

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Excel VBA, 14 Bytes

Anonymous VBE immediate window function that takes input from range [A1] and outputs to the VBE immediate window

?[A1*(A1+1)/2]
\$\endgroup\$
1
\$\begingroup\$

Javascript, 12 bytes

n=>(n*n+n)/2
\$\endgroup\$
  • 1
    \$\begingroup\$ -2 bytes: n=>n*--n/2 \$\endgroup\$ – Herman L Jul 19 '17 at 17:28
  • \$\begingroup\$ Could you elaborate? :-) \$\endgroup\$ – MadPhysicist Jul 19 '17 at 18:19
  • 1
    \$\begingroup\$ n=>n*++n/2 is the same thing as n=>n*(n+1)/2, while also changing the value of n. Since we don't need n anymore, this doesn't matter. (n=>n*--n/2 is incorrect due to a typo) \$\endgroup\$ – Herman L Jul 20 '17 at 7:40
1
\$\begingroup\$

Java, 10 bytes

n->n*-~n/2

Admittedly, only slightly different from another Java answer, but uses two's complement trickery.

\$\endgroup\$
1
\$\begingroup\$

Forth, 17 bytes

Defines a word (function) that returns n*(n+1)/2.

: f dup 1+ * 2/ ;

Try it online


Full program with the same byte count:

key dup 1+ * 2/ .

Try it online - input is a single character, like BF.

\$\endgroup\$
1
\$\begingroup\$

Ly, 26 7 bytes

n:1+*2/u

EDIT: Saved a bunch of bytes by using a far better algorithm.

\$\endgroup\$
1
\$\begingroup\$

ArnoldC, 461 bytes

IT'S SHOWTIME
HEY CHRISTMAS TREE I
YOU SET US UP 0
GET YOUR ASS TO MARS I
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
HEY CHRISTMAS TREE Z
YOU SET US UP I
GET TO THE CHOPPER I
HERE IS MY INVITATION I
GET UP 1
ENOUGH TALK
GET TO THE CHOPPER Z
HERE IS MY INVITATION Z
YOU'RE FIRED I
ENOUGH TALK
GET TO THE CHOPPER Z
HERE IS MY INVITATION Z
HE HAD TO SPLIT 2
ENOUGH TALK
TALK TO THE HAND Z
YOU HAVE BEEN TERMINATED

Explanation

Schwarzy.

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Kona - 8 bytes

{+/!x+1}

Explanation:

 +/      Add together
   !      All numbers less than...
    x+1   The input plus 1

Alternative answer - 8 bytes:

{+/x,!x}

 +/      Add together
   x      The input
    ,     Joined to
     !     All the numbers less than...
      x    The input
\$\endgroup\$
  • \$\begingroup\$ If you dont need it to be a function you can do +/!1+ for 5 bytes. \$\endgroup\$ – streetster Aug 10 '17 at 14:12
1
\$\begingroup\$

Emojicode, 50 bytes

🐖🔢➡️🚂🍇🍎➗✖🐕➕🐕1 2🍉

Try it online!

\$\endgroup\$
1
\$\begingroup\$

4, 40 bytes

3.70060101002000120300026040230503045054

Try it online!

\$\endgroup\$

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.