使用Scanner - Java超出时间限制

时间:2012-06-25 10:39:40

标签: java java.util.scanner time-limiting

我正在使用problem from a programming Judge在Java中测试此代码,并且出现“时间限制”错误。我想 scanner.hasNextDouble() thingy不能以某种方式工作。

它与链接中显示的公共输入一起使用,但它会在私有时抛出此时间限制错误。

有什么想法解决这个问题?

import java.util.Scanner;
import java.text.NumberFormat;
import java.util.Locale;

class Main /*AvalPoli2*/ {
    public static void main(String[] args) {
        NumberFormat nf = NumberFormat.getNumberInstance(Locale.US); // dot sep.
        nf.setGroupingUsed(false); // don't group in groups of 3 
        nf.setMaximumFractionDigits(4); 
        nf.setMinimumFractionDigits(4);
        Scanner scanner = new Scanner(System.in);
        scanner.useLocale(Locale.US); // read doubles with dot separator
        double sum = 0.0000;
        double x = 0;
        if (scanner.hasNextDouble()) x = scanner.nextDouble();
        while (scanner.hasNextDouble()) {
            sum *= x;
            sum += scanner.nextDouble();
        }
        System.out.println(nf.format(sum));
    }
}

非常感谢! ^ _ ^

1 个答案:

答案 0 :(得分:1)

你必须包装你的System.in,比如

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
in = new Scanner(br);

代替,

in = new Scanner(System.in);