「java的oj」java的oj快速读取

博主:adminadmin 2022-11-27 01:52:09 54

今天给各位分享java的oj的知识,其中也会对java的oj快速读取进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

基于Java的OJ(online judge)系统,谁有相关的制作教程,最好是源码。

现在学习Java的平台有很多,B站或者是腾讯课堂都是可以的,我们在B站分享了很多经典的Java视频教程,都是开源的,你可以去看看。

怎么用JAVA写OJ上想A+B问题,希望能给出直接A过的代码……

import java.util.Scanner;

public class Main {

public static void main(String args[]) {

Scanner in = new Scanner(System.in);

while (true) {

int a = in.nextInt();

int b = in.nextInt();

System.out.println(a + b);

}

}

}

为什么java oj老是wrong answer?

你的写法里一个方法输入六个参数,这种方法很难读的,而且变量名没有体现可读性,你说abcdef到底啥意思?一个方法参数过多可以直接拆分为多个方法,再方法套用就可以了;max方法其实一句话a=ab?a:b;可以实现了,不需要再搞出来方法

个人建议你新建一个类,把点的三个数据封装为一个坐标对象point(x,y,z),然后利用数组把你的输入数据封装到数组point p[]里,这样一维数组就足够用了,不需要二维。然后再设计几个成员方法,第一个是计算两个任意点对象的距离以求出边长,第二个是利用海伦公式三边长可以直接求面积设计方法来得到面积值,然后再用三个for循环内嵌,相当于定二移一,逻辑记录最大值输出即可

你看我写的代码,是不是比较容易看得懂什么意思?当然没有加入合法性检验,这个你自己肯定会写我就不写了

package com.at.java;

import java.util.Scanner;

public class JustTest {

public static void main(String args[]) {

int i=0,j=0,k=0;double maxArea=0;int num=0;

String s=new String(" ");

String str[]=new String[3];

System.out.println("请输入点个数:");

Scanner sc1=new Scanner(System.in);

num=sc1.nextInt();

sc1.nextLine(); /*必须加一行以过滤上面的回车键否则报错**/

Point p[]=new Point[num];

for(i=0;inum;i++)

{

p[i]=new Point(0,0,0);

}/*对象数组成员必须初始化,否则报错空指针**/

System.out.println("请输入三个数据代表x,y,z,之间以空格间隔,以回车结束:");

for(i=0;inum;i++)

{

s=sc1.nextLine();/*按照图像要求,必须使用nextLine方法接受字符串,因为nextInt方法不可能得到图示的输入结果**/

str=s.split(" ",3);/*以空格为拆解符,拆解为3个储存数字的字符串**/

p[i].x=Double.parseDouble(str[0]);

p[i].y=Double.parseDouble(str[1]);

p[i].z=Double.parseDouble(str[2]);

}

for(i=0;inum;i++)

{

for(j=i+1;jnum;j++)

{

for(k=j+1;knum;k++)

{

maxArea=maxAreap[i].areA(p[i], p[j], p[k])?maxArea:(p[i].areA(p[i], p[j], p[k]));

}/*for循环嵌套计算面积并比较大小**/

}

}

sc1.close();

System.out.printf("最大面积为"+"%.2f",maxArea);

}

}

class Point{

double x,y,z;

Point(double x,double y,double z)

{

this.x=x;

this.y=y;

this.z=z;

}

double disTance(Point a,Point b)/*两点边长方法**/

{

return Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));

}

double areA(Point a,Point b,Point c)/*海伦公式三点面积方法**/

{

double al=a.disTance(a, b);double bl=b.disTance(b, c);double cl=c.disTance(a, c);

double p=(al+bl+cl)/2;

return Math.sqrt(p*(p-al)*(p-bl)*(p-cl));

}

}

在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等类封装时,注意只能有一个封装实例,否则可能弄丢输入数据。

作者:张浩斌

链接:

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

OJ一直报我错误,用java老是超时,用C++不会,求问各位大神有没有什么好的方法(java代码修改方面)?

Java中的Scanner运行特别慢,建议使用BufferedReader与StringTokenizer来代替Scanner,速度会提高很多,用Java刷OJ超时是很正常的,速度真的是太慢了

java oj题目求解答!

你想要的应该是字符串匹配方面的一个算法,对于这个特殊的问题,采用rolling hash可能会好一点。

关于java的oj和java的oj快速读取的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。