java 怎么写oj_牛客网编程OJ的典型输入Java模板

笔试的时候一般都需要自己写输入输出,为了尽可能减少因为格式问题而爆0这种委屈之事,我在此以牛客网OJ为例总结了常见的6种典型情况输入描述的模板。希望可以帮助到广大考友把更多的精力放在解题思路上。逻辑代码写到while循环里

1. 输入是已知大小的二维数组

输入描述第一行是一个正整数n,表示二维数组有n行n列。

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

int n=scan.nextInt();//定义需要的阶层数n

int[][]array=new int[n][n];//定义一个n*n的数组array

System.out.println("输入数组的各个元素:");

for(int i=0;i

for (int j = 0; j < n; j++)

array[i][j] = scan.nextInt();

}

}

2. 输入的每组测试数据有多行的情况

输入描述:第一行是一个正整数T,表示有T组测试数据。

之后每组数据有三行,第一行为n(1<=n<=10000),第二行有n个正整数,第三行也有n个正整数;都在整数范围内。

输入:

3

3

1 2 3

1 2 3

4

4 3 2 1

1 1 1 1

2

1 2

10 20

输出:

7

4

30

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int T = in.nextInt();

while(T>0){

T--;//为了保证输出的第一行会换行

//a和b分别放每组测试用例的第二行和第三行

int[] a = new int[10000];

int[] b = new int[10000];

int n = in.nextInt();

for(int i=1; i<=n; i++){

a[i] = in.nextInt();

}

for(int i=1 ;i<=n; i++){

b[i] = in.nextInt();

}

}//将输入带到function()方法里去运算

System.out.println(function(a,b))

}

3. 每行测试数据的数量在该行开头给出

输入描述:第一行是一个正整数T,表示有T组测试数据。

之后每组数据第一个数为N(1<=n<=10000),紧接着有N个正整数;(注意在一行)

public static void main(String[] args){

Scanner input = new Scanner(System.in);

int T = input.nextInt();

for(int i=0; i

int N = input.nextInt();

String s = input.next();//注意用的是next(),不换行

char[] ch = new char[10000];

for (int j=0; j

ch[j] = s.charAt(j);

}

System.out.println(function(ch));

}

}

4. 测试数据组数未知且结果需要取模的情况

输入描述:每行输入两个数分别为 N 和 L ,直到N 和 L为止;结果对1000000007取模

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

Long mod = 1000000007l;

while (input.hasNext()) {

Long n = input.nextLong();

Long l = input.nextLong();

if (n == 0 && l == 0) {

break;

}//将输入带到function()方法里去运算

System.out.println(function(n,l)%mod);

}

}

5. 测试数据组数未知且结果需要取模的情况

输入描述:

输入数据有多组, 每行表示一组输入数据。

每行不定有n个整数,空格隔开。(1 <= n <= 100)。

public static void main(String[] args){

Scanner sc=new Scanner(System.in);

while(sc.hasNextLine()){

String [] s=sc.nextLine().split(" ");

int sum=0;

for(int i=0;i

sum=sum+Integer.parseInt(s[i]);

}

System.out.println(sum);

}

}

6.判断子串是否与主串的某段相等

public class StringExist {

public static void main(String [] args){

//输入主串和子串

Scanner input = new Scanner(System.in);

String mainString = input.nextLine();

String subString = input.nextLine();

//判断方法调用

boolean result = jugdeExist(mainString,subString);

System.out.println(result);

}

//判断子串是否与主串的某段相等

public static boolean jugdeExist(String mainString,String subString){

if (null== mainString)return false;

String[] forArray = mainString.split(",");

for (String Id : forArray) {

if(Id.equals(subString))

return true;

}

return false;

}

}

更多字符串的输入输出练习在牛客网上有练习场,推荐给大家

OJ在线编程常见输入输出练习场

如果对你有帮助的话来个赞呗,如果有什么问题欢迎交流,我会更努力地分享高质内容给大家。考试顺利~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值