目录
一:输入是已知大小的二维数组
输入描述:输入描述第一行是一个正整数n,表示二维数组有n行n列
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[][] arr = new int[n][n];
for(int i =0; i<n; i++){
for(int j =0; j< n; j++){
arr[i][j] = sc.nextInt();
}
}
}
}
输入描述:输入的第一行两个整数m, n分别对应二维数组的行和列
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int m = scan.nextInt();
int n = scan.nextInt();
int[][] arr = new int[m][n];
for(int i=0;i<m;i++){
for(int j =0;j<n;j++){
arr[i][j] = scan.nextInt();
}
}
}
}
二:输入的每组测试数据有多行的情况
输入描述:第一行是一个正整数T,表示有T组测试数据。接下来一行有两个整数,分别是m和n,
如何接下来m行,每行有n个整数。
输入样例
输入:
3
2 3
1 2 3
1 2 3
2 4
4 3 2 1
1 1 1 1
2 2
1 2
10 20
输出:
7
4
30
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
while(T > 0){
T--;
int m = scan.nextInt();
int n = scan.nextInt();
int[][] arr = new int[m][n];
for(int i =0;i<m;i++){
arr[i][j] = scan.nextInt();
}
// 进行处理和输出
}
}
}
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t>0){
t--;
while(sc.hasNext()){
int n = sc.nextInt();
if(n ==0) break;
int[] arr = new int[n];
int sum =0;
for(int i=0;i<n;i++){
arr[i] = sc.nextInt();
sum+=arr[i];
}
System.out.println(sum);
}
}
}
}
三:每行测试数据的数量在该行行头给出
输入描述:第一行是一个正整数T,表示有T组测试数据。之后每组数据第一个数为N(1 <= n<=10000),紧接着有N个数;(都在同一行)
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int t = scanner.nextInt();
for(int i =0;i<t;i++){
int n = scan.nextInt();
String s = scan.next(); //注意用的是next(),不换行
char[] ch = new char[10000];
for(int j =0; j<N;j++){
ch[j] = s.charAt(j)
}
}
}
}
(代码有待考证)

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
if(n ==0) break;
int[] arr = new int[n];
int sum =0;
for(int i=0;i<n;i++){
arr[i] = sc.nextInt();
sum+=arr[i];
}
System.out.println(sum);
}
}
}
四:测试结果未知且需要取模的情况
输入描述:每行输入两个数,分别为N和L,直到N和L为某个特殊取值为止止;结果对10000000007取模
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Long mod = 10000000007;
while(input.hasNext()){
{
Long n = scan.nextLong();
Long l = scan.nextLong();
if(n == 0 && l ==0){
break;
}
}
}
}
}
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();
if(a == 0 && b ==0){
break;
}
System.out.println(a+b);
}
}
}
五:测试数组组数未知且结果需要取模的情况
输入描述:
输入数据有多组,每行表示一组输入数据。
每行不定有n个整数,空格隔开。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String[] s = scan.nextLine().split(" ");
int sum =0;
for(int i =0; i<s.length();i++){
sum+=Integer.paarseInt(s[i]);
}
}
}
}
六:判断子串是否与子串的某段相等
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String mainString = scan.nextLine();
String subString = scan.nextLine();
}
}
七:不知道输入有多少行情况下,求每行之和

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(a+b);
}
}
}
八:已知有n组,每组有两个数据进行处理

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
for(int i =0;i<t;i++){
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(a+b);
}
}
}
在线训练网站:
https://ac.nowcoder.com/acm/contest/5652
参考:
https://blog.csdn.net/smile001isme/article/details/105470699

本文介绍了在牛客网在线编程题中遇到的八种常见输入处理情况,包括已知大小的二维数组、多行测试数据、每行数量在行头给出、结果取模、数组组数未知等,并提供了相应的输入描述和样例。适用于Java程序员进行在线编程训练。


4445

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



