文章目录
相关网址:
https://ac.nowcoder.com/acm/contest/5647?from=hr_test#question
https://www.nowcoder.com/discuss/8050
https://www.nowcoder.com/discuss/276
要点:
scanner.hasNext()
scanner.next()
scanner.hasNextLine()
scanner.nextLine() 返回String类型
scanner.hasNextInt()
scanner.nextInt() 返回int类型
String[] tmp=。。。.split(" ")
Integer.parseInt(strings[i])
String.valueOf(...)
1.计算a+b
题目:
输入包括两个正整数a,b(1 <= a, b <= 10^9),
输入数据包括多组。
输出a+b的结果
输入例子:
1 5
10 20
输出例子:
6
30
int 4字节 2^31=2147483648 > 10 ^ 9
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextLine()){
String[] strings =scanner.nextLine().split(" ");
// int[] num=new int[strings.length];
// for (int i=0;i<strings.length;i++) {
// num[i]=Integer.parseInt(strings[i]);
// }
int a=Integer.parseInt(strings[0]);
int b=Integer.parseInt(strings[1]);
System.out.println(a+b);
}
有时用long类型
// while(sc.hasNext()){
// int a = sc.nextInt();
// int b = sc.nextInt();
// System.out.println(a + b);
// }
}
}
2.计算a+b
输入描述:
输入第一行包括一个数据组数t (1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出描述:
输出a+b的结果
输入例子1:
2
1 5
10 20
输出例子1:
6
30
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num=scanner.nextInt();
for(int i=0;i<num;i++){
int a=scanner.nextInt();
int b=scanner.nextInt();
System.out.println(a+b);
}
}
}
3.计算a+b
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),
输入数据有多组,
如果输入为0 0则结束输入
输出描述:
输出a+b的结果
输入例子1:
1 5
10 20
0 0
输出例子1:
6
30
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a,b;
while(true){
a=scanner.nextInt();
b=scanner.nextInt();
if(a==0 && b==0){
break;
}else {
System.out.println(a+b);
}
}
}
}
4.计算一系列数的和
输入描述:
输入数据包括多组。
每组数据一行,
每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
4 1 2 3 4
5 1 2 3 4 5
0
输出例子1:
10
15
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int first,//即整数个数
add=0;
while(true){
first=scanner.nextInt();
if(first==0){
break;
}else {
add=0;
for(int i=0;i<first;i++){
add+=scanner.nextInt();
}
System.out.println(add);
}
}
}
}
5.计算一系列数的和
输入描述:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
2
4 1 2 3 4
5 1 2 3 4 5
输出例子1:
10
15
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num=scanner.nextInt();//组数
int add=0;
for(int i=0;i<num;i++){
int first=scanner.nextInt(); //每行第一个数为需要求和的整数个数
add=0;//把上一轮算的累加和清空
for(int j=0;j<first;j++){
add+=scanner.nextInt();
}
System.out.println(add);
}
}
}
6.计算一系列数的和
输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
4 1 2 3 4
5 1 2 3 4 5
输出例子1:
10
15
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num=0,add=0;
while(scanner.hasNext()){ //注意不能用while(true) 或者 hasNextLine()!!!!!!
// 会报java.util.NoSuchElementException
num =scanner.nextInt();
add=0;
for(int i=0;i<num;i++){
add+=scanner.nextInt();
}
System.out.println(add);
}
}
}
7. 计算一系列数的和
输入描述:
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
输入例子1:
1 2 3
4 5
0 0 0 0 0
输出例子1:
6
9
0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 一次读一行
while(sc.hasNextLine()) {
String[] num = sc.nextLine().split(" ");
int sum = 0; // 每一轮要将sum重置一下
for(int i=0; i<num.length ;i++) {
sum += Integer.parseInt(num[i]);
}
System.out.println(sum);
}
}
}
8. 对输入的字符串进行排序后输出
输入描述:
输入有两行,
第一行n
第二行是n个空格隔开的字符串
输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格
输入例子1:
5
c d a bb e
输出例子1:
a bb c d e
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 注意是行
int n = Integer.parseInt(scanner.nextLine());
while(scanner.hasNextLine()){
// 最后一个字符串后面有没有空格不重要,以“ ”分割就行了
String[] array=scanner.nextLine().split(" ");
// 排序
Arrays.sort(array);
for(int i=0;i<n;i++){
// 发现多了个 结尾空格 也没事
System.out.print(array[i]+" ");
}
// System.out.println(array[n-1]);
}
}
}
9. 对输入的字符串进行排序后输出
输入描述:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
输入例子1:
a c bb
f dddd
nowcoder
输出例子1:
a bb c
dddd f
nowcoder
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextLine()){
// 最后一个字符串后面有没有空格不重要,以“ ”分割就行了
String[] array=scanner.nextLine().split(" ");
// 排序
Arrays.sort(array);
for(int i=0;i<array.length-1;i++){
System.out.print(array[i]+" ");
}
System.out.println(array[array.length-1]); ///避免最后多个 结尾空格
}
}
}
10. 对输入的字符串进行排序后输出
输入描述:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100
输出描述:
对于每组用例输出一行排序后的字符串,用’,'隔开,无结尾空格
输入例子1:
a,c,bb
f,dddd
nowcoder
输出例子1:
a,bb,c
dddd,f
nowcoder
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextLine()){
String[] array=scanner.nextLine().split(",");
// 排序
Arrays.sort(array);
for(int i=0;i<array.length-1;i++){
System.out.print(array[i]+",");
}
System.out.println(array[array.length-1]);
}
}
}
11.自测本地通过提交为0
输入:
输入有多组测试用例,
每组空格隔开两个整数
输出:
对于每组数据输出一行两个整数的和
示例1
输入: 1 1
输出: 2
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
long a=sc.nextLong(); //此处不可使用int
long b=sc.nextLong();
System.out.println(a+b);
}
}
}