Java在ACM中的使用
1、基本框架
import java.oi.*;
import java.util.*
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in));
}
}
2、Java的输入
读一个整数:int n = cin.nextInt();
相当于scanf("%d", &n);或 cin 》 n;
读一个字符串:String s = cin.next();
相当于scanf("%s", s);或 cin 》 s;
读一个浮点数:double t = cin.nextDouble();
相当于scanf("%lf", &t); 或 cin 》 t;
读一整行:String s = cin.nextLine();
相当于gets(s);或 cin.getline(…);
判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble()
3、Java的输出
输出一般可以直接用 System.out.print() 和 System.out.println(),前者不输出换行,而后者输出。
System.out.printf()的使用方法类似于C语言的printf();
4、浮点数输出
import java.text.*;
public class Main
{
public static void main(String[] args)
{
DecimalFormat g = new DecimalFormat("0.00");
double a = 123.45678;
System.out.println(g.format(a));
}
}
//输出为123.46
5、Java的高精度
import java.math.* // 需要引入 java.math 包
BigInteger a = BigInteger.valueOf(100);
BigInteger b = BigInteger.valueOf(50);
BigInteger c = a.add(b) // c = a + b;
//主要有以下方法可以使用:
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
int compareTo(BigInteger other)
static BigInteger valueOf(long x)
切记:
BigInteger类不可进行+-这样的运算,要调用其成员函数进行运算。
另外BigInteger类不是int 的扩展类型,所以不能把int类型值直接赋值给BigInteger.
BigInteger类型有自己的常量 www.lefeng123.com
BigInteger.zero
BigInteger.one
6、Java的字符串
String 类用来存储字符串,可以用charAt方法来取出其中某一字节,计数从0开始:
String a = "Hello"; // a.charAt(1) = 'e'
用substring方法可得到子串,如上例
System.out.println(a.substring(0, 4)) // output "Hell"
注意第2个参数位置上的字符不包括进来。这样做使得 s.substring(a, b) 总是有 b-a个字符。
字符串连接可以直接用 + 号,如
String a = "Hello";
String b = "world";
System.out.println(a + ", " + b + "!"); // output "Hello, world!"
不可以通过charAt方法改变某一单个字符
7、Java的数组
数组的定义:
int[] a = new int[100];
数组的初始化
Arrays.fill(a,0);
相当于C语言中的 memset(a,0,sizeof(a));
8、一些注意事项
使用Netbeans写Java程序的时候用自动添加package main;交题的时候要去掉这句话。
主类必须命名为 Main
虽然Java功能很强大,但不能完全依赖他,毕竟C/C++还是ACM/ICPC的主流语言。有些题目无论Java怎么写都会超时,可以用Java计算出结果然后用C/C++打表提交。
交题时,你的代码应该是如下框架 www.qcwy123.com
import ……//相当于c++的include
public class Main {
public static……//一些自己定义的函数
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
}
}
Java的语法与c/c++还是很相似的,所以放心写吧
/*
Java输入加速
用BufferedReader和StringTokenizer代替Scanner
*/
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Reader Reader =new Reader(System.in);
double x = Reader.nextDouble();
int n = Reader.nextInt();
String str = Reader.next();
}
}
class Reader {
final BufferedReader reader;
StringTokenizer tokenizer;
public Reader(InputStream input) {
reader = new BufferedReader(new InputStreamReader(input));
tokenizer = new StringTokenizer("");
}
public String next() throws IOException {
while (!tokenizer.hasMoreTokens())
tokenizer = new StringTokenizer(reader.readLine());
return tokenizer.nextToken();
}
public int nextInt() throws IOException {
return Integer.parseInt(next());
}
public double nextDouble() throws IOException {
return Double.parseDouble(next());
}
}
Java在ACM中的使用的更多相关文章
- Java在ACM中的应用
Java在ACM中的应用 —. 在java中的基本头文件(java中叫包) import java.io.*; import java.util.*; //输入Scanner import java. ...
- java在acm中常用基础技巧方法
java在acm中常用基础技巧方法 如果学到了新的技巧,本博客会更新~ input input-std @Frosero import java.util.*; public class Main { ...
- [原创]浅谈JAVA在ACM中的应用
由于java里面有一些东西比c/c++方便(尤其是大数据高精度问题,备受广大ACMer欢迎),所以就可以灵活运用这三种来实现编程,下面是我自己在各种大牛那里总结了一些,同时加上自己平时遇到的一些jav ...
- Java基础__Java中常用数学类Math那些事
测试 package Cynical_Gary; public class Cynical_Text { public static void main(String[] args){ System ...
- ACM中Java的应用
先说一下Java对于ACM的一些优点吧: (1) 对于熟悉C/C++的程序员来说Java 并不难学,两周时间基本可以搞定一般的编程,再用些时间了解一下Java库就行了.Java的语法和C++非常类似, ...
- 【经验总结】Java在ACM算法竞赛编程中易错点
一.Java之ACM易错点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...
- ACM中使用 JAVA v2. 1
ACM中使用JAVA v2.1 严明超 (Blog:mingchaoyan.blogbus.com Email:mingchaoyan@gmail.com) 0.前 言 文前声明:本文只谈java用于 ...
- Java中的BigInteger在ACM中的应用
Java中的BigInteger在ACM中的应用 在ACM中的做题时,常常会遇见一些大数的问题.这是当我们用C或是C++时就会认为比較麻烦.就想有没有现有的现有的能够直接调用的BigInter,那样就 ...
- ACM中java的使用
ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...
随机推荐
- js编写验证码
这是一个简单的js编写的验证码,自己已经亲自验证,没有问题了 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
原文地址:http://www.awflasher.com/flash/articles/swfobj.htm SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块原文:S ...
- 在vim里每行增加//注释
1.ctrl+v选择区域块 ,可以选到每一行的第一个word 2. shift+i 3. 光标会定位在第一行, 输入一个// 4. 按esc, 被选择的所有行就加上了//
- 从VSS到SVN再到Git 记Git的基本操作
Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理.Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理 ...
- 拖数据库到x-code常见错误
拖进去之后,用本地读取的方式读不到路径,重新拖一次,并且把Add to targets 里面的勾勾上
- javascript 分离全局变量
当要编写一段javascript模块代码是, 这段代码将要在用在各种javascript程序中(就是各种各样的网页中), 为了让这段代码不与原来的代码起冲突,解决方法就是将代码放在一个函数(funct ...
- Object-C变量作用域 -- 笔记
@interface Dog: NSObject { @public int age; @protected int ID; @Private float price; } @end 字段作用域解析: ...
- Unity3D基础学习 利用NGUI的Texture播放视频
利用NGUI播放视频,首先你得导入你的视频 你的电脑中必须安装QuickTime软件,没有,去下一个,如果是Windows系统,安装完之后重启. 接下来转换你的视频格式,如果你的视频在QuickTim ...
- mysql5.5.17源代码安装
1. 源代码包下载 源代码包通常也採用tar.gz压缩.名称中仅仅包括版本号信息,大小也比RPM包.二进制包小非常多,解压后的文件里含有INSTALL-SOURCE文件.可从MySQL官网(http ...
- MaraDNS与DeadWood一起配置为本地机器提供小型化DNS服务
因为工作测试需要,要在本机装一个环境,可以解析自己命名的域名,即域名->IP的映射服务.在网上找了下,都说是MaraDNS不错.也试了下,在本地配置是没有问题的.从官网上下载的是2-0-11.w ...