ACM中java解题常用方法及准则
2016-07-27 19:35
225 查看
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;
/////////////////////////////////////////////
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;
/////////////////////////////////////////////
相关文章推荐
- Two Sum
- 实现java中自定义类加载器
- Java主要特性
- CXF与Spring集成
- Java环境变量配置(详细)
- SpringMVC中无法获取SessionFactory的解决!
- DAO层、Service层、Controller层、View层介绍
- Spring 国际化支持 消息传递 以及 AOP 面向方面编程
- java中用小数点分隔字符串问题
- SpringMVC+MyBatis+logback
- Java 设计模式
- Spring Boot使用Druid和监控配置
- Spring-AOP:简介
- javaweb学习总结(十九)——JSP标签
- 关于java限定修饰符
- 【JAVA】继承
- 关于Java中静态属性和静态代码块的执行顺序问题
- Java匿名内部类
- java_接口的应用
- 最详细的Log4j使用教程