1.A+B问题
1.判断有没有下一行
sc.hasNextLine()
2.下一个输入的值
int a = sc.nextInt();
3.第一行为n组数据,后面n行为每一组的数据(不止一组测试数据,会持续输入n和数据)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while (sc.hasNextLine()){
for (int i = 0; i < n; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
}
}
}
4.遇到0就结束
if (n == 0){
break;
}
6. A+B问题VIII
题目描述
你的任务是计算若干整数的和。
输入描述
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。
输出描述
对于每组输入,输出M个数的和,每组输出之间输出一个空行。
输入示例
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
输出示例
10
15
6
提示信息
注意以上样例为一组测试数据,后端判题会有很多组测试数据,也就是会有多个N的输入
例如输入可以是:
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
输出则是
10
15
6
10
15
6
只保证每组数据间是有空行的。但两组数据并没有空行
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int j = sc.nextInt();
int sum = 0;
for (int i1 = 0; i1 < j; i1++) {
sum += sc.nextInt();
}
System.out.println(sum);
// 只保证每组数据间是有空行的。但两组数据并没有空行
if (i == n - 1){
break;
}
System.out.println();
}
}
}
}
2.平均绩点
题目描述
每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
输入描述
有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
输出描述
每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。
输入示例
A B C D F
B F F C C A
D C E F
输出示例
2.00
1.83
Unknown
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
String[] s = sc.nextLine().split(" ");
double sum=0;
boolean flag=true;
for (String s1 : s) {
switch (s1){
case "A":
sum+=4;
continue;
case "B":
sum+=3;
continue;
case "C":
sum+=2;
continue;
case "D":
sum+=1;
continue;
case "F":
sum+=0;
continue;
default:
flag=false;
break;
}
}
System.out.println(flag?String.format("%.2f",sum/s.length) :"Unknown" );
}
sc.close();
}
}
1030

被折叠的 条评论
为什么被折叠?



