时间限制:1.000S 空间限制:32MB
题目描述
你的任务是计算若干整数的和。
输入描述
输入的第一行为一个整数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.hasNext()){ //第一重循环.获得整数N
int n1 = sc.nextInt();
while(n1-- > 0){ //第二重循环.获得整数M
int n2 = sc.nextInt();
int sum = 0;
while(n2-- > 0){ //第三重循环,每行具体数据输入计算
int a = sc.nextInt();
sum += a;
}
System.out.println(sum);
if(n1 > 0){
System.out.println();
}
}
}
}
}
收获:
①注意变量的作用域.
本题的sum变量在初版代码里写在了最里层循环之中.导致次里层涉及sum的判断无法进行.
②只看功能的话,while加点变量也可以平替for
题源:卡码网