HDU 5047:JAVA输入输出的正确姿势
2014-09-28 11:14
453 查看
能用BigInteger耍赖是JAVA的一大特色,但是如果用我们熟知的输入输出方式又特别容易超时,特别是这道题似乎有意卡JAVA,不过还是被很多神牛弄过去了。
偷窥了几个队的代码,挑了一个最简单的记录了下来,还有一些BigInteger可能用得着的方法。
输入可以用代码中所示的Scanner sc = new Scanner(new BufferedInputStream(System.in)), 之后使用方法和原来的 = new Scanner(System.in)一样。
输出有点特别,PrintWriter如果不flush或者close是看不到输出的,但是如果每输出一点东西就flush这道题会超时,所以正确的姿势是全部完成以后一次性flush出来,这样就快了。
BigInteger的运算效率不用怀疑……
偷窥了几个队的代码,挑了一个最简单的记录了下来,还有一些BigInteger可能用得着的方法。
输入可以用代码中所示的Scanner sc = new Scanner(new BufferedInputStream(System.in)), 之后使用方法和原来的 = new Scanner(System.in)一样。
输出有点特别,PrintWriter如果不flush或者close是看不到输出的,但是如果每输出一点东西就flush这道题会超时,所以正确的姿势是全部完成以后一次性flush出来,这样就快了。
BigInteger的运算效率不用怀疑……
import java.io.*; import java.math.BigInteger; import java.util.*; /*另外几个BigInteger常用方法: * add(BigInteger), substract(BigInteger), multiply(BigInteger), divide(BigInteger)加减乘除 * BigInteger.valueOf(int) 把int转成BigInteger * BigInteger(String) 常用的构造函数 * gcd(BigInteger) * */ public class Main { static int t; static BigInteger EIGHT = new BigInteger("8"); static BigInteger SEVEN = new BigInteger("7"); static BigInteger ONE = new BigInteger("1"); public static void main(String[] args) throws IOException { Scanner sc = new Scanner (new BufferedInputStream(System.in)); PrintWriter cout = new PrintWriter(System.out); t = sc.nextInt(); int files; for(files=1; files<=t; files++) { String seq; seq = sc.next(); BigInteger n = new BigInteger(seq); BigInteger ans; BigInteger ans2; ans = n.multiply(n).multiply(EIGHT); ans2 = n.multiply(SEVEN);//注意一定要写成a = a.multiply/add/substract/divide(b); ans = ans.subtract(ans2); ans = ans.add(ONE); cout.println("Case #"+files+": "+ans); } cout.flush();//最后flush,否则易超时,这样会在最后统一打印出答案 } }
相关文章推荐
- hdu 5047 java快速输入输出
- HDU 5047 Sawtooth (规律+java各种读入输出模板)
- JAVA输入/输出学习...
- Java语言入门 -- 第九章 Java的输入输出操作
- Java的输入输出流
- java代码从输入到输出的整个过程
- 如何正确使用Java I/O输出和读入数据
- 浅谈Java的输入输出流
- 1、 编写一个Java应用程序,对用户输入的任意一组字符如{1,3,4,7,2,1,1,5,2},输出其中出现次数最多且数值最大的字符,并显示其出现次数。
- java 输入输出操作的几点经验
- Java程序的输入与输出
- java初学者实践教程22-输入/输出
- java输入输出
- 如何正确使用Java I/O输出和读入数据
- 如何正确使用Java I/O输出和读入数据
- java初学者实践教程22-输入/输出
- java输入输出
- 如何正确使用Java I/O输出和读入数据
- java输入输出
- Java语言入门 -- 第九章 Java的输入输出操作