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 code-golf, 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>
243 Answers 243
Quipu, 11 bytes
\/
\/
++
/\
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
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
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)
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.
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)
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
How dare you fuck the brain, (削除) 13 (削除ここまで) (削除) 7 (削除ここまで) (削除) 6 (削除ここまで) 4 bytes
;=;+
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
hashmap (Yes, the name starts with a lowercase letter.), 3 bytes
hh+
h Take input
h Take input
+ Get the sum
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
-
\$\begingroup\$ You dont need to print it, a simple return will suffice. \$\endgroup\$Karl Napf– Karl Napf2016年10月27日 15:22:46 +00:00Commented Oct 27, 2016 at 15:22
Maple, 3 bytes
`+`
Usage:
> `+`(1,2)
3
Gema, 13 characters
* *=@add{*;*}
Sample run:
bash-4.3$ gema '* *=@add{*;*}' <<< '5 16'
21
golflua, 12 characters
\f(a,b)~a+b$
Sample run:
> \f(a,b)~a+b$
> w(f(5,16))
21
MoonScript, 10 characters
(a,b)->a+b
Sample run:
bash-4.3$ .luarocks/moon <(echo 'print ((a,b)->a+b)(5,16)')
21
SQF, 19
Using the function-as-a-file format:
params["x","y"];x+y
Call as: [X, Y] call NAME_OF_COMPILED_FUNCTION
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!
-
\$\begingroup\$ Perhaps you meant
printIntinstead ofprinInt\$\endgroup\$Leaky Nun– Leaky Nun2016年08月26日 15:29:08 +00:00Commented Aug 26, 2016 at 15:29 -
\$\begingroup\$ How does it work? \$\endgroup\$Leaky Nun– Leaky Nun2016年08月26日 15:39:05 +00:00Commented Aug 26, 2016 at 15:39
-
\$\begingroup\$ @LeakyNun whoopsmy bad, fixing now \$\endgroup\$Rohan Jhunjhunwala– Rohan Jhunjhunwala2016年08月26日 16:16:18 +00:00Commented Aug 26, 2016 at 16:16
-
\$\begingroup\$ 2 bytes off \$\endgroup\$Leaky Nun– Leaky Nun2016年08月26日 16:20:21 +00:00Commented 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\$Rohan Jhunjhunwala– Rohan Jhunjhunwala2016年08月26日 16:21:05 +00:00Commented Aug 26, 2016 at 16:21
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.
-
\$\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\$Blue– Blue2016年07月06日 16:32:28 +00:00Commented 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\$Addison Crump– Addison Crump2016年07月06日 22:44:58 +00:00Commented Jul 6, 2016 at 22:44
-
\$\begingroup\$ @muddyfish The
/pswitch allows you to set a variable equal to a line of input entered by the user. \$\endgroup\$Dennis– Dennis2016年10月18日 15:36:02 +00:00Commented Oct 18, 2016 at 15:36
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.
-
\$\begingroup\$
a=>b=>a+b, but then it will be a duplicate \$\endgroup\$TuxCrafting– TuxCrafting2016年10月27日 18:27:27 +00:00Commented Oct 27, 2016 at 18:27 -
\$\begingroup\$ Also
(a,b)=>a+bis better, but still, duplicate \$\endgroup\$Yotam Salmon– Yotam Salmon2016年10月30日 21:27:58 +00:00Commented Oct 30, 2016 at 21:27
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)
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.
-
1\$\begingroup\$ (a,b)->a+b as a lambda expression \$\endgroup\$Pavel– Pavel2017年01月09日 09:23:41 +00:00Commented Jan 9, 2017 at 9:23
-
1\$\begingroup\$ @Pavel Or
a->b->a+bto save 1 more byte. \$\endgroup\$Kevin Cruijssen– Kevin Cruijssen2017年09月26日 15:07:01 +00:00Commented Sep 26, 2017 at 15:07
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).
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.
Scala, 17 Bytes
x:Int=>y:Int=>x+y
REXX, 15 bytes
arg a b
say a+b
J, 4 bytes
I've defined a function f and set it to the built-in addition operator.
f=:+
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.
5 16is inputted as005 016\$\endgroup\$