ps:写在前面,最近开始学习JAVA语言...(此处省略一百字)
一、Java之ACM注意点
1. 类名称必须采用public class Main方式命名
2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾
3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件
二、Java之输入输出处理
由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。
1. 输入:
格式1:Scanner sc = new Scanner (new BufferedInputStream(System.in));
格式2:Scanner sc = new Scanner (System.in);
在读入数据量大的情况下,格式1的速度会快些。
读一个整数: int n = sc.nextInt(); 相当于 scanf("%d", &n); 或 cin >> n;
读一个字符串:String s = sc.next(); 相当于 scanf("%s", s); 或 cin >> s;
读一个浮点数:double t = sc.nextDouble(); 相当于 scanf("%lf", &t); 或 cin >> t;
读一整行: String s = sc.nextLine(); 相当于 gets(s); 或 cin.getline(...);
判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/problemlist/cid/2038 题目链接(都是基础)
A:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in); //借助Scanner这个类
int a=sc.nextInt(); //数据输入
int b=sc.nextInt();
System.out.println(a+b);
}
}
B:
import java.util.*;
public class Main20170304{
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);
}
}
}
C:
import java.io.*;
import java.util.*;
public class Main20170304_03{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n>=1){ //不能这样写while(n--)
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(a+b);
n--;
}
}
}
D:
import java.io.*;
import java.util.*;
/*
总结:&& & || 和 | 会影响到判断语句的判断方式,一般来说,常用&& 和 ||
&& :判断时,如果第一个为true,继续判断第二个,第三个... 如果全部为true,结果为true,如果判断过程中一旦遇到false,将停止判断,因为对于判断是否全部为true的&&来说,只要有一个false,那么后续的判断都没有意义
||:它判断时,只要有一个为true,那么他得出的结果就为true,后续的判断也没意义,如果全为false,那么结果为false
& 和 | :它们的判断结果和&&、|| 没有区别,但在执行时有,也就是如果执行到某一部分即使已经得出结果,它们仍然会继续判断,直到所有的判断结束
我认为,在有些时候& 和 | 还是很有用的!
*/
//编码GBK的不可映射字符,选择ANSI编码即可
public class Main20170304_04{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
while(!(a==0&&b==0)){
System.out.println(a+b);
a=sc.nextInt();
b=sc.nextInt();
}
}
}
E:
import java.io.*;
import java.util.*;
public class Main20170304_05{ //在oj上提交时,必须是public class Main{}(修饰符为public,类名为Main)
//否则Compile Error
public static void main(String[] args){
int n,ans=0;
Scanner sc=new Scanner(System.in);
n=sc.nextInt(); //输入n
while(n!=0){
ans=0;
for(int i=1;i<=n;i++){
ans+=sc.nextInt();
}
System.out.println(ans);
n=sc.nextInt(); //输入n
}
}
}
F:
import java.io.*;
import java.util.*;
public class Main20170304_06{
public static void main(String[] args){
int n,m,tmp,ans;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
for(int i=1;i<=n;i++){
m=sc.nextInt();
ans=0;
for(int j=1;j<=m;j++){
tmp=sc.nextInt(); //ans+=sc.nextInt();
ans+=tmp;
}
System.out.println(ans);
}
}
}
G:
import java.io.*;
import java.util.*;
public class Main20170304_07{
public static void main(String[] args){
int n,ans;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){ //使用sc.hasNextInt()判断是否还有输入
n=sc.nextInt();
ans=0;
for(int i=1;i<=n;i++){
ans+=sc.nextInt();
}
System.out.println(ans);
}
}
}
H:
import java.io.*;
import java.util.*;
public class Main20170304_08{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
System.out.println(sc.nextInt()+sc.nextInt());
System.out.println(); //输出一个空白行
}
}
}
I:
import java.io.*;
import java.util.*;
public class Main20170304_09{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n,m,ans;
n=sc.nextInt();
for(int i=1;i<=n;i++){
m=sc.nextInt();
ans=0;
for(int j=1;j<=m;j++){
ans+=sc.nextInt();
}
System.out.println(ans);
System.out.println();
}
}
}
J;
import java.io.*;
import java.util.*;
public class Main20170305_01{
public static void main(String[] args){
System.out.println("Hello World!");
System.out.println();
}
}
K:
import java.io.*;
import java.util.*;
public class Main20170305_02{
public static void main(String[] args){
System.out.println("100");
System.out.println("A");
System.out.println("3.140000");
}
}
L:
import java.io.*;
import java.util.*;
public class Main20170305_03{
public static void main(String[] args){
int n=6;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
System.out.print("#");
}
System.out.println();
}
}
}
M:
import java.io.*;
import java.util.*;
public class Main20170305_04{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
//使用sc.next(),读入字符串
System.out.println(sc.next()); //并没有把读入的换行输出(因为只有一个换行输出)
}
}
N:
import java.io.*;
import java.util.*;
public class Main20170305_05{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println(sc.nextInt()+sc.nextInt());
}
}
O:
import java.io.*;
import java.util.*;
public class Main20170305_06{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int y=sc.nextInt();
int tmp;
tmp=x;x=y;y=tmp;
System.out.print(x+" "+y);
}
}