本节针对某些国企银行类的笔试编程题,不是LeetCode风格的,而是需要处理输入输出的,对这些IO处理做总结。这类代码,需要自己import包名。自己定义主类和主函数。
1、读取多行,每行读取多个
1.1 题目描述
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 1000),输入数据包括多组。
输出描述:
输出a+b的结果
输入例子1:
1 5 10 20
输出例子1:
6 30
1.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}
}
2、第一行是数据组数,后面的是数据
2.1 题目描述
输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 1000)
输出描述:
输出a+b的结果
输入例子1:
2 1 5 10 20
输出例子1:
6 30
2.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int lineNum = sc.nextInt();
for (int i = 0; i < lineNum; ++i) {
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}
}
3、输入多行,遇0结束
3.1 题目描述
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输出描述:
输出a+b的结果
输入例子1:
1 5 10 20 0 0
输出例子1:
6 30
3.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
while (a != 0 && b != 0) {
System.out.println(a + b);
a = sc.nextInt();
b = sc.nextInt();
}
}
}
4、每行第一个是这行的数据总数,遇0结束
4.1 题目描述
输入描述
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述
每组数据输出求和的结果
输入示例1:
4 1 2 3 4 5 1 2 3 4 5 0
输出示例1:
10 15
4.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
int lineTotal = sc.nextInt();
int sum = 0;
for (int i = 0; i < lineTotal; ++i) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
5、第一行是数据组数,每行第一个是这行的数据总数
5.1 题目描述
输入描述
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。 接下来t行, 每行一组数据。 每行的第一个整数为整数的个数n(1 <= n <= 100)。 接下来n个正整数, 即需要求和的每个正整数。
输出描述
每组数据输出求和的结果
输入示例1:
2 4 1 2 3 4 5 1 2 3 4 5
输出示例2:
10 15
5.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int lineNum = sc.nextInt();
for (int i = 0; i < lineNum; ++i) {
int sum = 0;
int lineTotal = sc.nextInt();
for (int j = 0; j < lineTotal; ++j) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
6、每一行一组数据,每一行第一个数据是该行数据总数
6.1 题目描述
输入描述
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述
每组数据输出求和的结果
输入示例1:
4 1 2 3 4 5 1 2 3 4 5
输出示例2:
10 15
6.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int lineTotal = sc.nextInt();
int sum = 0;
for (int i = 0; i < lineTotal; ++i) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
7、每行一组数据,没有给出当前行包含多少元素
7.1 题目描述
输入描述
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述
每组数据输出求和的结果
输入示例1:
1 2 3 4 5 0 0 0 0 0
输出示例2:
6 9 0
7.2 代码
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
int sum = 0;
String[] arr = sc.nextLine().split(" ");
for (String str: arr) {
sum += Integer.valueOf(str);
}
System.out.println(sum);
}
}
}