编程题
### 问题描述 本题是一道 Java 快速读入输出的模板题,目的是为了让大家感受快速读写和 `Scanner` 的区别,因此测试点只有一个,你的代码需要在指定时间内完成以下功能: 输入 $n$ 个正整数,再将其输出。 ### 输入格式 第一行输入一个数字 $n$($n=10^6$),表示数字数量。 第二行输入 $n$ 个数字,$10^{12}\le$ 每个数字大小 $\le \text{long}$ 的上界。 ### 输出格式 按顺序输出这 $n$ 个数字。 ### 样例输入 ```text 4 1 2 3 4 ``` ### 样例输出 ```text 1 2 3 4 ``` ### 说明 样例只是为了展示数据输入输出格式,和实际测试文件并不相同。 **大家可以将以下二种代码分别提交运行,查看运行时间的差距**。 ### Java 快读模板(本题标程)
Java 代码实现 ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { int t=1; for(int i=1;i<=t;i++){ solve(); } out.flush(); } static void solve(){ int n=in.nextInt(); for(int i=1;i<=n;i++){ out.print(in.nextLong()+" "); } } static FastReader in = new FastReader(); static PrintWriter out=new PrintWriter(System.out); static class FastReader{ static BufferedReader br; static StringTokenizer st; FastReader(){ br=new BufferedReader(new InputStreamReader(System.in)); } String next(){ String str=""; while(st==null||!st.hasMoreElements()){ try { str=br.readLine(); } catch (IOException e) { throw new RuntimeException(e); } st=new StringTokenizer(str); } return st.nextToken(); } int nextInt(){ return Integer.parseInt(next()); } double nextDouble(){ return Double.parseDouble(next()); } long nextLong(){ return Long.parseLong(next()); } } } ```
### Java 普通版本 Scanner
Java 代码实现 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { int t=1; for(int i=1;i<=t;i++){ solve(); } } static void solve(){ Scanner in = new Scanner(System.in); int n=in.nextInt(); for(int i=1;i<=n;i++){ System.out.print(in.nextLong()+" "); } } } ```
查看答案
赣ICP备20007335号-2