71
\$\begingroup\$

Input: Two integers. Preferably decimal integers, but other forms of numbers can be used. These can be given to the code in standard input, as arguments to the program or function, or as a list.

Output: Their sum. Use the same format for output integers as input integers. For example, the input 5 16 would lead to the output 21.

Restrictions: No standard loopholes please. This is , answer in lowest amount of bytes wins.

Notes: This should be fairly trivial, however I'm interested to see how it can be implemented. The answer can be a complete program or a function, but please identify which one it is.

Test cases:

1 2 -> 3
14 15 -> 29
7 9 -> 16
-1 8 -> 7
8 -9 -> -1
-8 -9 -> -17

Or as CSV:

a,b,c
1,2,3
14,15,29
7,9,16
-1,8,7
8,-9,-1
-8,-9,-17

Leaderboard

var QUESTION_ID=84260,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){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}
<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>

asked Jul 2, 2016 at 0:40
\$\endgroup\$
3
  • 31
    \$\begingroup\$ This is quite trivial, but not really simpler than, e.g., the Hello World catalog. Given that the ability to add integers is one of our two requirements for programming languages, I'd say it's worthwhile to have if properly specified. \$\endgroup\$ Commented Jul 2, 2016 at 0:48
  • 2
    \$\begingroup\$ Can the answer take input with preceding zeros as default? e.g. 5 16 is inputted as 005 016 \$\endgroup\$ Commented Dec 4, 2016 at 11:56
  • 1
    \$\begingroup\$ @FinW Sure. As long as they don't get interpreted as octal. \$\endgroup\$ Commented Dec 4, 2016 at 20:47

243 Answers 243

1
...
5 6
7
8 9
1
\$\begingroup\$

Ark

<<+^

example: [1, 4, 5]

answered Mar 17, 2022 at 1:01
\$\endgroup\$
1
\$\begingroup\$

makina, 13 bytes

P >iN
>>+
Ni<
answered Apr 21, 2022 at 12:53
\$\endgroup\$
1
\$\begingroup\$

Quipu, 11 bytes

\/
\/
++
/\

Attempt This Online!

Explanation

Each side-by-side pair of characters is a command ("knot"), and execution proceeds from top to bottom:

\/ Input a number
\/ Input another number
++ Add the values of the previous two knots
/\ Output the value of the previous knot
answered Jul 29, 2022 at 23:35
\$\endgroup\$
1
\$\begingroup\$

Billiards, 7 characters = 11 bytes

Language made after the challenge.

↧ # Takes an input
↧ # Takes another input
+ # Adds them together
P # Outputs as an integer

Alternatively, for the same number of bytes:

↧↧ # Takes two inputs
+/ # Adds them together; the '/' deflects the second input into the '+'
P # Output as an integer
emanresu A
46.2k5 gold badges111 silver badges257 bronze badges
answered Feb 12, 2017 at 2:21
\$\endgroup\$
1
\$\begingroup\$

MSWLogo, 23 bytes

to f :a :b
pr :a+:b
end

Picture to prove it works

A function which takes two inputs and prints the output.

answered Apr 14, 2023 at 13:41
\$\endgroup\$
1
\$\begingroup\$

Hatchback, 25 bytes

16 0 16 1 2 0 1 1 0 65535

gets 2 inputs (16 0 16 1), adds them together (2 0 1), and prints it (1 0)

answered Jan 14 at 15:40
\$\endgroup\$
1
\$\begingroup\$

BrainChild ASM, 5 bytes

asm function add(int, int) -> int {
 xpopa
 xpopb
 addab
 xpushb
 ret
}

Hex-dump of bytecode

 0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000: 34 35 1B 2F 14 | 45./. 

Pops the x stack into the a and b registers, sums them, then pushes the result back unto the x stack. Only supports Unsigned 32 bit integers.

Try It Online!

With tests

answered Jan 14 at 22:18
\$\endgroup\$
1
\$\begingroup\$

Branch, 2 bytes

+#

Try it on the online Branch interpreter!

Explanation

+ adds the values of the children of the current node. If any nodes are missing, they are usually created with a value of 0; however, binary operations will instead read from STDIN (this usually gets 0 if the input is exhausted, but if the input was empty to begin with, feof doesn't seem to work the way I want it to).

# just outptus the value of the current node as a number (as opposed to a character, which . does)

Gleb
3533 silver badges11 bronze badges
answered Apr 17, 2021 at 18:57
\$\endgroup\$
1
\$\begingroup\$
answered Feb 5 at 17:45
\$\endgroup\$
1
\$\begingroup\$

Regenerate, 10 bytes

${$~1+$~2}

Takes the input numbers as command-line arguments. Attempt This Online!

Explanation

${ } Treat the result of this expression as a string:
 $~1 First cmdline arg
 + Plus
 $~2 Second cmdline arg
answered Feb 10, 2022 at 5:13
\$\endgroup\$
1
\$\begingroup\$

How dare you fuck the brain, (削除) 13 (削除ここまで) (削除) 7 (削除ここまで) (削除) 6 (削除ここまで) 4 bytes

;=;+

Try it online!

Explained

;=; #Get user input on cell 1, copy it to cell 2, then overwrite the input on cell 1
 + #Adds the two cells together and implicit print it as a number
answered Oct 8, 2024 at 20:31
\$\endgroup\$
0
\$\begingroup\$

hashmap (Yes, the name starts with a lowercase letter.), 3 bytes

hh+
h Take input
 h Take input
 + Get the sum
answered Jul 4, 2016 at 10:31
\$\endgroup\$
0
\$\begingroup\$

C, 25 Bytes

p(a,b){printf("%d",a+b);}

Usage

p(a,b){printf("%d",a+b);}
main(c,v)char**v;{p(atoi(*++v),atoi(*++v));}

Or, if you want a full program: (+29 chars)

main(c,v)char**v;{printf("%d",atoi(*++v)+atoi(*++v));}

Take 2 arguments and outputs the results in STDOUT

answered Jul 5, 2016 at 16:22
\$\endgroup\$
1
  • \$\begingroup\$ You dont need to print it, a simple return will suffice. \$\endgroup\$ Commented Oct 27, 2016 at 15:22
0
\$\begingroup\$

Maple, 3 bytes

`+`

Usage:

> `+`(1,2)
 3
answered Jul 25, 2016 at 16:55
\$\endgroup\$
0
\$\begingroup\$

Gema, 13 characters

* *=@add{*;*}

Sample run:

bash-4.3$ gema '* *=@add{*;*}' <<< '5 16'
21
answered Jul 27, 2016 at 11:56
\$\endgroup\$
0
\$\begingroup\$

golflua, 12 characters

\f(a,b)~a+b$

Sample run:

> \f(a,b)~a+b$ 
> w(f(5,16))
21
answered Jul 27, 2016 at 12:44
\$\endgroup\$
0
\$\begingroup\$

MoonScript, 10 characters

(a,b)->a+b

Sample run:

bash-4.3$ .luarocks/moon <(echo 'print ((a,b)->a+b)(5,16)')
21
answered Jul 27, 2016 at 12:49
\$\endgroup\$
0
\$\begingroup\$

SQF, 19

Using the function-as-a-file format:

params["x","y"];x+y

Call as: [X, Y] call NAME_OF_COMPILED_FUNCTION

answered Aug 15, 2016 at 3:56
\$\endgroup\$
0
\$\begingroup\$

S.I.L.O.S 38

readIO 
a = i
readIO 
a + i
printInt a


For documentation see the repo https://github.com/rjhunjhunwala/S.I.L.O.S Fee free to try this code online!

answered Jul 24, 2016 at 23:56
\$\endgroup\$
7
  • \$\begingroup\$ Perhaps you meant printInt instead of prinInt \$\endgroup\$ Commented Aug 26, 2016 at 15:29
  • \$\begingroup\$ How does it work? \$\endgroup\$ Commented Aug 26, 2016 at 15:39
  • \$\begingroup\$ @LeakyNun whoopsmy bad, fixing now \$\endgroup\$ Commented Aug 26, 2016 at 16:16
  • \$\begingroup\$ 2 bytes off \$\endgroup\$ Commented Aug 26, 2016 at 16:20
  • \$\begingroup\$ @LeakyNun thanks, you showed me a feature I didn't even know my language had! I though readIO must have a prompt after it! \$\endgroup\$ Commented Aug 26, 2016 at 16:21
0
\$\begingroup\$

Batch, 52 Bytes

set/p x=
set/p y=
set/a z=%x%+%y%
echo %z%
pause>nul

This is the lowest byte number you will have while still making the program work. I did the challenge by making a program, not just what the operation was. This method will allow you to input any number and then any other number, including negatives, and the program will output a number.

TuxCrafting
4,8373 gold badges34 silver badges46 bronze badges
answered Jul 6, 2016 at 16:12
\$\endgroup\$
3
  • \$\begingroup\$ Is this a full program? I don't know batch but it looks like the numbers get inputted by editing the program rather than a prompt of some kind \$\endgroup\$ Commented Jul 6, 2016 at 16:32
  • \$\begingroup\$ Hey Nitrate. Welcome to PPCG. A few problems with this post: this is code-golf, which means you need to shorten your code to as short as possible. You don't have to take input like this - you could possibly take it as command line arguments to shorten it. Nice to see you here, m9. \$\endgroup\$ Commented Jul 6, 2016 at 22:44
  • \$\begingroup\$ @muddyfish The /p switch allows you to set a variable equal to a line of input entered by the user. \$\endgroup\$ Commented Oct 18, 2016 at 15:36
0
\$\begingroup\$

Y, 5 bytes

{α+β}

Anonymous function returning the sum of it first and second argument.

answered Oct 12, 2016 at 17:18
\$\endgroup\$
0
\$\begingroup\$

JavaScript, 27 bytes

function s(a,b){return a+b}

I thought this needed a semi-colon after the return statement, but when typing it into the Chrome Console, it works fine without.

answered Oct 20, 2016 at 15:59
\$\endgroup\$
2
  • \$\begingroup\$ a=>b=>a+b, but then it will be a duplicate \$\endgroup\$ Commented Oct 27, 2016 at 18:27
  • \$\begingroup\$ Also (a,b)=>a+b is better, but still, duplicate \$\endgroup\$ Commented Oct 30, 2016 at 21:27
0
\$\begingroup\$

2 cases:

Pyth, 5 bytes

Input format: n1, n2

code: +hQeQ

Pyth, 1 byte

Input format: n1+n2

code: Q

(But I'm not sure if the second is called "cheating" :-P)

answered Oct 30, 2016 at 21:26
\$\endgroup\$
0
\$\begingroup\$

Java, 91 bytes

interface M{static void main(String[]a){System.out.print(new Long(a[0])+new Long(a[1]));}}

Usage: java M <num1> <num2>

Tips appreciated.

answered Oct 31, 2016 at 20:53
\$\endgroup\$
2
  • 1
    \$\begingroup\$ (a,b)->a+b as a lambda expression \$\endgroup\$ Commented Jan 9, 2017 at 9:23
  • 1
    \$\begingroup\$ @Pavel Or a->b->a+b to save 1 more byte. \$\endgroup\$ Commented Sep 26, 2017 at 15:07
0
\$\begingroup\$

PHP, 5 bytes

bcadd

PHP has the BC-Math library for arbitrary length integers.
bcadd adds the numbers represented by the two string operands.

A full program would need 21 bytes:

<?=$argv[1]+$argv[2];

alright 20 bytes with array_sum (assuming that the file name does not start with a digit).

answered Jan 9, 2017 at 9:20
\$\endgroup\$
0
\$\begingroup\$

Carrot, 5 bytes, non-competing

$^F+$

Try it online! (no permalink)

Input numbers are separated by a newline like so:

x
y

$ in c^rrot mode (the code before the first ^) pops the first value from the input array. So now the stack contains x. After that, this value is converted to a number using F. Then we add it with $, the next value in the input array, ie y. Output is implicit, so this outputs x+y.

An alternative at the cost of 1 byte would be:

#^A + 

note the trailing space

# takes all of the input (separated by a space), and converts it to an Array by splitting on s. Then encounter a +, which is given a as its argument, meaning that all the elements of the array will be summed up.

answered Feb 11, 2017 at 13:20
\$\endgroup\$
0
\$\begingroup\$

Scala, 17 Bytes

x:Int=>y:Int=>x+y
answered Mar 14, 2017 at 5:28
\$\endgroup\$
0
\$\begingroup\$

REXX, 15 bytes

arg a b
say a+b
answered Mar 14, 2017 at 13:46
\$\endgroup\$
0
\$\begingroup\$

J, 4 bytes

I've defined a function f and set it to the built-in addition operator.

f=:+
answered Mar 14, 2017 at 15:56
\$\endgroup\$
0
\$\begingroup\$

AHK, 15 bytes

1+=%2%
Send,%1%

1 and 2 are, by default, the first two arguments passed in to a program. Sometimes you have to escape them with percent signs so it doesn't confuse the variable 1 with the number one.

answered Mar 28, 2017 at 18:07
\$\endgroup\$
1
...
5 6
7
8 9

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.