题目1: 计算a+b。输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int a = sc.nextInt();
int b = sc.nextInt();
int sum = add(a, b);
System.out.println(sum);
}
}
public static int add(int a, int b) {
return a + b;
}
}
题目2: 计算a+b。输入第一行包括一个数据组数t(1 <= t <= 100),接下来每行包括两个正整数a,b(1 <= a, b <= 10^9),例如:
输入:
2
1 5
10 20
输出:
6
30
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
int sum = add(a, b);
System.out.println(sum);
}
}
public static int add(int a, int b) {
return a + b;
}
}
题目3: 计算a+b。输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0, 0则结束输入。例如:
输入:
1 5
10 20
0 0 // 结束输入
输出:
6
30
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int a = sc.nextInt();
int b = sc.nextInt();
if (a == 0 && b == 0) {
break;
}
int sum = add(a, b);
System.out.println(sum);
}
}
public static int add(int a, int b) {
return a + b;
}
}
题目4: 计算一系列数的和。输入数据包括多组,每组数据一行,每行的第一个整数为该组整数的个数 n (1 <= n <= 100),接下来为 n 个正整数,即需要求和的 n 个正整数。当 n 为 0 的时候结束输入。例如:
输入:
4 1 2 3 4
5 1 2 3 4 5
0 // 结束输入
输出:
10
15
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
if (n == 0) break;
int sum = 0;
for (int i = 0; i < n; i++) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
题目5: 计算一系列数的和。输入的第一行是一个正整数t(1 <= t <= 100), 表示数据组数。接下来 t 行, 每行表示一组数据。每行的第一个整数为该组数据的个数 n (1 <= n <= 100),接下来 n 个正整数, 即该组需要求和的每个正整数。例如:
输入:
2
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
int n = sc.nextInt();
int sum = 0;
for (int j = 0; j < n; j++) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
题目6: 计算一系列数的和。输入数据有多组, 每行表示一组输入数据。每行的第一个整数为该组数据的个数n(1 <= n <= 100),接下来是 n 个正整数, 即该组需要求和的每个正整数。例如:
输入:
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
int sum = 0;
for (int i = 0; i < n; i++) {
sum += sc.nextInt();
}
System.out.println(sum);
}
}
}
题目7: 计算一系列数的和。输入数据有多组, 每行表示一组输入数据。每行不定有 n 个整数,空格隔开。(1 <= n <= 100)。
输入:
1 2 3
4 5
0 0 0 0 0
输出:
6
9
0
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()) {
String str = sc.nextLine();
String[] strs = str.split(" ");
int sum = 0;
for (int i = 0; i < strs.length; i++) {
sum += Integer.parseInt(strs[i]);
}
System.out.println(sum);
}
}
}
总结: 基本数据类型 —> 字符串(String),使用String类中的valueOf()静态方法,该方法的参数为基本数据类型,如String.valueOf(int i);字符串(String) —> 基本数据类型,使用基本数据类型包装类中的静态方法,如Integer.parseInt(String s)。
题目8: 对输入的字符串进行排序后输出。输入有两行,第一行为 n,表示字符串的个数。第二行是 n 个空格隔开的字符串。输出一行排序后的字符串,空格隔开,结尾无空格。例如:
输入:
5
c d a bb e
输出:
a bb c d e
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.next();
}
sort(arr);
for (int i = 0; i < n; i++) {
if (i == n - 1) {
System.out.print(arr[i]);
} else {
System.out.print(arr[i] + " ");
}
}
}
public static void sort(String[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int index = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[i].compareTo(arr[j]) > 0) {
index = j;
}
}
if (index != i) {
String temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}
}
}
题目9: 对输入的字符串进行排序后输出。多个测试用例,每个测试用例一行,每行通过空格隔开,有n个字符串,n<100。对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开。例如:
输入:
a c bb
f dddd
nowcoder
输出:
a bb c
dddd f
nowcoder
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
String[] arr = str.split(" ");
sort(arr);
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i]);
} else {
System.out.print(arr[i] + " ");
}
}
if (sc.hasNextLine()) {
System.out.println();
}
}
}
}
题目10: 对输入的字符串进行排序后输出。多个测试用例,每个测试用例一行,每行通过,隔开,有n个字符串,n<100。对于每组用例,输出一行排序后的字符串,用’,'隔开,无结尾空格。例如:
输入:
a,c,bb
f,dddd
nowcoder
输出:
a,bb,c
dddd,f
nowcoder
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
String[] arr = str.split(",");
sort(arr);
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i]);
} else {
System.out.print(arr[i] + ",");
}
}
if (sc.hasNextLine()) {
System.out.println();
}
}
}
}
题目11: 本地自测通过,但提交通过率为0。每年前几场在线笔试编程题的时候,总有同学询问为什么我本地测试通过,自测也通过,提交代码系统却返回通过率0。请看下面的问题: 输入有多组测试用例,每组是空格隔开两个整数,输出每组两个整数的和。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLong()) {
long a = sc.nextLong();
long b = sc.nextLong();
System.out.println(a + b);
}
}
}
注意: 本题易错的地方在于求两个整数的和,大多数人会使用hasNextInt() 和nextInt() ,但如果是大数,则产生溢出,所以需要使用long类型,即把代码中所有的int替换为long。
结束语:如果本篇博客对您有帮助,请点赞、收藏或关注,您的鼓励是博主进步的动力,感谢支持,共同进步。
|