「javaoj输入」java中输入
今天给各位分享javaoj输入的知识,其中也会对java中输入进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、这道ACM题目怎么用JAVA做出来。。主要是输入格式问题:数据格式为YYYY/MM/DD组成,
- 2、java acm 输入多组
- 3、ACM竞赛,用JAVA编程,如果不知道输入数据的数量,怎样写?还有输入输出的格式是怎样的?
- 4、在OJ上做java,有什么需要注意的
- 5、acm java 输入问题
这道ACM题目怎么用JAVA做出来。。主要是输入格式问题:数据格式为YYYY/MM/DD组成,
public int getDays(String date){//输入格式要求是用斜杠“/”来分隔年月日
int y = Integer.parseInt(date.substring(0,4));
int m = Integer.parseInt(date.substring(5,date.lastIndexOf("/")));
int d = Integer.parseInt(date.substring(date.lastIndexOf("/")+1));
if(m==1){return d;}
if(m==2){return 31+d;}
int days = 0;
for(int i=1;im;i++){
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12 ){days += 31;}
else if(i != 2){days += 30;}
else{
if((y%4 == 0 y%100 !=0)|| (y%4==0 y%400 == 0)){days += 29;}
else{days += 28;}
}
}
days += d;
return days;
}
下面是我自测的结果:
java acm 输入多组
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){//相当于C的while(scanf("", )!=EOF){
int t=cin.nextInt();//有几组
while(t--0){//循环t次
int n=cin.nextInt();
int[] a = new int[10000];
for(int i=0;in;i++){//输入n 个数
a[i]=cin.nextInt();
}
}
}
}
}
ACM竞赛,用JAVA编程,如果不知道输入数据的数量,怎样写?还有输入输出的格式是怎样的?
1. 我想到的解决办法如下:
A. 第一项输入输入数量,随后按数量输入;
B. 设定一个结束符,输入了这个结束符以后,则输入结束;
C. 这个比较变态,做另一个线程监听上次输入时间,如果过了指定时间还没输入,则输入结束。
2. 你这样写至少有两个问题:
A. output没有flush;
B. 没有处理异常。
在OJ上做java,有什么需要注意的
大部分常见OJ要求只能提交一个源代码段落,即只能有一个.java文件。
通常文件命名为Main,程序入口为public static void main().
而Java要求public的类必须与所在文件同名。
因此只能是
public class Main{
public static void main(String [] args){
}
}
当你希望另外构建class时,不能再使用public关键词。
使用java.util.Scanner或Reader等类封装时,注意只能有一个封装实例,否则可能弄丢输入数据。
作者:张浩斌
链接:
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
acm java 输入问题
读入n,建立二维数组new char[n][n]有什么问题啊?
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws FileNotFoundException {
int n, k;
Scanner scanner = new Scanner(new File("test.txt"));
n = scanner.nextInt();
while (n != -1) {
k = scanner.nextInt();
scanner.nextLine();
boolean[][] matrix = new boolean[n][n];
for (int i = 0; i n; ++i) {
String s = scanner.nextLine();
for (int j = 0; j n; ++j) {
matrix[i][j] = s.charAt(j) == '#';
}
}
solve(matrix, n, k);
n = scanner.nextInt();
}
}
static void solve(boolean[][] matrix, int n, int k) {
// your algorithm code here
}
}
---------------------------------------------------------
还是不行是什么意思?我的代码我是测试过的,可以正确读入的
matrix[i][j] = s.charAt(j) == '#'的意思是对二维数组赋值,我用的是boolean类型的二维数组,true表示地图上有这个点,false表示没有,每次读入一行,遍历每个字符,如果是井号,那么就对相应的点设为true,否则为false。scanner.nextLine();就是读入一行的意思。你问我为什么这么输入?这个问题我不太明白,不就应该是一行一行读入吗?
javaoj输入的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中输入、javaoj输入的信息别忘了在本站进行查找喔。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。