Input-Output Lecture (0) for ACM Freshman
1000
Time Limit: 1 s
Memory Limit: 1024 MB
Submission:271
AC:230
Score:1
Description
Input
输入有多组,每组占一行,包含两个整数a和b (-100<=a,b<=100) 。
Output
对于每组输入,输出一行,即a+b的值。
Samples
input
1 5
10 20
output
6
30
input
1 2
output
3
Hint
这是一道四处可见的A+B练习题。
此处输入有多组,因此我们需要写一个循环来执行多次的a+b操作。但由于题目并未告诉你具体有多少组 输入,所以还需要在代码中判断当前的输入是否为最后一组。在C语言中,scanf若读取到末尾则返回EOF (实际值为-1),在C++中,cin读取到末尾返回0。
因此我们可以写出如下代码:
C版:
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
C++版:
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main()
{
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
}
C++17 版:
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
int main() {
while (true) {
if (int a, b; cin >> a >> b) {
cout << a + b << endl;
} else {
break;
}
}
}
C++20版:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
template<typename T>
concept Addable = requires (T obj) {{obj + obj} -> std::same_as<T>;};
template<Addable T>
T add(T a, T b) {
return a + b;
}
int main() {
while (true) {
if (int a, b; cin >> a >> b) {
cout << add(a, b) << endl;
} else {
break;
}
}
}
Java版:
1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
Pascal(FPC):
1
2
3
4
5
6
7
8
9
10
program p1000(Input,Output);
var
a,b:Integer;
begin
while not eof(Input) do
begin
Readln(a,b);
Writeln(a+b);
end;
end.
Python2/3版:
1
2
3
4
import sys
for line in sys.stdin:
a = line.split()
print(int(a[0]) + int(a[1]))
PHP版:
1
2
3
4
5
<?php
while (fscanf(STDIN, "%d%d", $a, $b) == 2) {
print ($a + $b) . "\n";
}
?>
C#版:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Linq;
namespace ConsoleApp
{
public class Program
{
private static void Main()
{
string line;
while((line = Console.ReadLine()) != null)
{
Console.WriteLine(line.Split().Select(int.Parse).Sum());
}
}
}
}
Lua版:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
local count = 0
function string.split(str, delimiter)
if str==nil or str=='' or delimiter==nil then
return nil
end
local result = {}
for match in (str..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match)
end
return result
end
while true do
local line = io.read()
if line == nil or line == "" then break end
local tb = string.split(line, " ")
local sum = 0
for i=1, #tb do
local a = tonumber(tb[i])
sum = sum+a
end
if count>0 then
io.write("\n")
end
io.write(string.format("%d", sum))
count = count+1
end
Perl版:
1
2
3
4
5
6
my $input;
while($input = <>){
chomp($input);
my @array = split ' ',$input;
print $array[0]+$array[1],"\n";
}
Bash 版:
1
2
3
while read a b; do
echo `expr ${a} + ${b}`
done
GO版:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main
import "fmt"
import "io"
func main() {
var A, B int
for {
_, err := fmt.Scan(&A, &B)
if err == io.EOF {
break
}
fmt.Println(A+B)
}
1
2
}