现在好多oj都支持JAVA语言提交了,应该有很多人不论是从C语言转向java还是上手学的就是java。都有利用oj刷题的需要。这篇博客,就来分享下oj刷题的基础,源代码的提交和输入输出。
源代码
首先,我们编写java用的编译器是eclipse,不同于传统的C语言编译器以文件为单位,同一个文件夹下可以存在多个包含主函数的代码文件。java的程序是以工程为单位的,其下再分为包,包下再分出类。
而在java语言中所有的方法存在于类中。
所以,要想创建主方法,我们就需要先创建包含主方法的类。
具体的,这里有几个要求:
- 包含主方法的类必须是public修饰的公有类。
- 该类的类名必须为Main
- 主方法的定义必须为 public static void main(String[] args)
也就是说,在写一份程序之前,我们必须有这样一段代码:
public class Main{
public static void main(String[] args){
}
}
嗯。。。这样一道题才算是可以开始码了。
那么,说到创建类和主方法。我们就不得不面对另外一个问题,即:程序的命名和存储
在C语言中,我们可以直接将主函数写在引用的头文件下,保存成一个.c或者.cpp文件。这样一来,我就可以为程序命名为题目,复制内容就可以上交了。同时,不同的题目也可以存在不同的文件夹中,方便管理。
那么在java语言中,我们的存储方式就需要发生变化了。由于java是以工程为单位储存的。那么同名的类又不能重复定义,那么像C语言那样一个文件夹一个程序就不大可能了。当然,我们也不能一个工程写一道题,这样很奇怪的好吗!!
这里,我推荐一种储存方法。既然同一个同一个包中不能出现同名的类文件,那么我们就将不同的题放置在不同的包中,就像这样:
- 工程文件
- 源文件夹
- 包1
- 类Main
- 包2
- 类Main
- 包3
- 类Main
- 包4
- 类Main
- 包1
- 源文件夹
emm。。。不会插图片,这么搞还算形象。这样一来,每一个包就当做每一道题的文件夹,可以命不同的名称。
接着就是提交的问题了
提交的时候需要包含Main类文件中以下内容:
1.包含有主方法的Main方法
2.额外定义的其他类
3.所有引文件的import语句
注意:千万不要带上package语句!!
把他们复制下来,一并提交。
例如铺地毯这道可爱的题:
我的程序;
package P1003铺地毯;
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[