index | submit | rank | book

add – Addition

If I have two oranges and three tomatoes, how many items to I have?

Write a program that reads several pairs of numbers and, for each pair, prints the sum. The standard input and output devices are usually the keyboard and screen of a command line session. Here is an example session with this program:

$ ./add
0 0
0
3 7
10
12 21
33
-123 321
198
1234 4321
5555

Input and Output

Each line of input contains two numbers x and y where

-2 000 000 000 ≤ x, y ≤ 2 000 000 000

For each line of input there should be a line of output with the result of adding x to y.

Numbers may be given in the input with leading zeroes. The output should have no leading zeroes.

Example input

0 0
3 7
12 21
-123 321
1234 4321

Example output

0
10
33
198
5555

The add function

In order to get a full score, your program should be implemented using an add function that receives two integers as arguments and returns an integer. Please refer to the information for the chosen language:

If you are confused by the above, try earning a partial score first.

Scoring

Submit your solution to be graded according to the following list:

Hints

If you do not know where to start, read the Computer Science by Example book. First, setup your environment then learn the programming basics. Here are some hints:

  1. Automated judge: Keep in mind that when your program is submitted it will not be run by a human but instead by an automated judge. Instructions should be followed exactly or the judge will not give you a full score.

    Your program should not print messages like Please type two numbers: or The sum is:. Instead, just print the result followed by a line break as in the example output.

  2. Produce output as you go: You do not need to accumulate input and then produce everything at the end. It is enough to produce output as you go. As soon as you read a pair of numbers write their sum to standard output.

  3. Detecting the end of file. In this exercise, input is terminated by the end-of-file (EOF). Here are ways to detect EOF in C, Python and Haskell:

    • In C. The scanf function returns the numbers of items read from stdin. Since this exercise requires you to read two numbers each line, you can compare scanf’s result to one as a while condition:

        while (scanf(...)==2) {
            ...
        }
      

      Which translates to, “while you’re able to read two items from standard input, do …”

    • In Python. The pattern for line in sys.stdin: can be used to create a loop where a file is processed line by line until the end-of-file (EOF).

    • In Haskell. You can use interact to declare the main function and implement your solution as a function from String to String:

        io :: String -> String
        io = ...
      
        main :: IO
        main = interact io
      

      EOF is then represented as the nil list constructor ("" or []) at the end of the argument String.

    On the terminal, you can simulate the end-of-file (EOF) by holding “Ctrl” and pressing “D”, i.e., Ctrl-D.

  4. Beware of leading zeroes. C users should beware of leading zeroes. Use %d instead of %i to avoid treating numbers with leading zeroes as octals.

try first: repeat add1

try next: mult

index | submit | rank | book

Copyright © 2020-2021 Rudy Matela
All rights reserved