ACM中java解题常用方法及准则

来源:互联网 发布:好看的网络拓扑 编辑:程序博客网 时间:2024/05/22 06:40

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;

/////////////////////////////////////////////

1 0
原创粉丝点击