1、提交时类名必须是Main,否则有些OJ会出编译错误(比如华科OJ)。
2、ACM中java解题的输入准则
Scanner cin=new Scanner(System.in);
int a;
a=cin.nextInt();
double b;
b=cin.nextDouble();
float c;
c=cin.nextFloat();
String d;
d=cin.next();
3、需要循环输入时:
C++准则
while(scanf("%d",&n)!=EOF)
{
}
或者
while(~scanf("%d",&n))
或者
while(scanf("%d",&n)!=-1)
Java准则:while(cin.hasNextInt())
{
}
或者
while(cin.hasNext())
{
}
4、坑爹的JAVA数字机制
想用float定义浮点数时如果数字后面不加F或者f系统会默认那个浮点数是double型的从而无法编译。
用double定义则加不加D或者d无所谓。
定义整形时:
int型范围在正负2.1乘以10的10次方左右
系统默认整形的为int ,所以定义数字为int最大值范围外,long最大值范围内时要在数字末尾加L或者l,否则系统默认超过int型而无法编译。
5、JAVA解题常用方法(持续更新):
/字符转字符串
char b[]={'a','w','e'};String a=new String(b);
字符串转字符
String str = "abc" ;
char [] c = str.toCharArray();
///模板格式化(若截取均四舍五入)
public static void ft(String b,double c)
{
DecimalFormat f=new DecimalFormat();
f.applyPattern(b);
System.out.println(b+" "+c+" "+"模板格式化后:"+f.format(c));
}
模板字符:
0 :如果该位不存在则显示0 。
例如 0.000 123.4 模板格式化后:123.400
# :如果该位不存在则不显示任何 。
例如 ##.#### 123.423 模板格式化后:123.423
#####.## 123.423 模板格式化后:123.42
, : 分组分隔符
例如 ###,###,###.## 1234567.8 模板格式化后:1,234,567.8
% : 百分数处理
例如 ##.0% 0.97 模板格式化后:97.0%
手动取消计算机四舍五入的方法
-0.5
如:数字要截取成XXX.XXX 则要减XXX.XXX5
数字要截取成X.X 则要减X.X5
/java带约分
Math.round(x);
截取x(double)的整数部分
使用:
如约分小数点后两位
a=Math.round(a*100)/100;
/