Java提交OJ规范

首先我们需要很明确的一点是在类vjude这种OJ提交系统中一般都是需要循环输入的,即他会用多行输入来去测试你的程序是否正确。

这是A题:题目中提供了问题,输入格式要求,输出格式要求,输入样例,输出样例,需要注意的就是输入样例是从控制台输入的,即要想接收这两个参数,必须从控制台输入。

Scanner sc=new Scanner(System.in);
int a=sc.nextInt();

循环输入的话就是这样的格式:

Scanner sc = new Scanner(System.in);
while(sc.hasNextInt())//hasNextIn()方法检测
{
//逻辑代码
}
//A题答案规范
import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextInt())
		{
			int a=sc.nextInt();
			int b=sc.nextInt();
			System.out.println(a+b);
		}
		sc.close();
	}
}

看一下B题的答案:

import java.util.Scanner;
public class Main {
    public static void main(String []args) {
		Scanner sc = new Scanner(System.in);
            while(sc.hasNextDouble())//注意是hasNextDouble()
           {
		        double a = sc.nextDouble();
               System.out.printf("%.2f%n",Math.abs(a));//注意一下java这种Printf格式化输出
             }
     }
}
这两道题用到的常见方法
Scanner的常用方法
hasNext() //只能返回true或false,判断有无下一个字符串的标记
举个例子,对于a b c,现在处理到a,那么下一个标记就是b。
hasNextDouble() 只能返回true或false,判断有无下一个实数的标记
next() //返回类型为String(字符串),返回下一个标记。不会读取回车换行。
hasNextInt() //返回true或false,看有无下一个整型字符串标记。
nextInt() //返回类型int,将下一个整型字符串标记转化为int型返回。
nextBoolean() //返回类型为boolean,可以处理字符串true或者false,
nextDouble() //返回类型为double,可以处理字符串如1 2.3 -1.3等。
nextLine() //返回类型为String(字符串对象),返回一整行。会读取回车换行符。

printf格式化输出方法
有的时候我们不想要直接println,这样输出来之后不是我们想要的格式,这时候就需要用到了Printf格式化输出方法

比如上一道题中
System.out.printf("%.2f%n",Math.abs(a));
这个意思就是把a这个实数取绝对值后然后保留小数点后两位换行输出。
这个就是说明Printf是System.out类中的一个方法,他的第一个参数是我要输出的格式,第二个是数据内容。
在这条语句中%.2f对应着Math.abs(a);

现在给出常见的格式参数
%n  换行  相当于 \n

%c  单个字符

%d  十进制整数
  %6d 代表宽度为6的整数
  %06d 代表宽度为6的整数,不够左边添加0
   
%u  无符号十进制数

%f  十进制浮点数
 %.2f是保留小数点后两位
 %5.2f //"5.2"中的5表示输出的长度,2表示小数点后的数。(右对齐)
 %-5.2f    //"-"表示输出的数左对齐(默认为右对齐)

%o  八进制数

%x  十六进制数

%s  字符串

%%  输出百分号

需要注意的地方是在OJ模式下一般情况只存在一个Main类,如果想要多个类的话也可以,其他类不能加Public修饰,即class we{}

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值