2

我正在用 Java 测试这段代码,遇到了来自编程法官的问题,我得到了一个“时间限制”错误。我猜scanner.hasNextDouble()东西不能以某种方式工作。

它适用于链接中显示的公共输入,但它会与私人一起引发此时间限制错误。

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

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));
    }
}

非常感谢!^_^

4

1 回答 1

1

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

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

反而,

in = new Scanner(System.in);
于 2014-01-22T19:05:58.543 回答