【发布时间】:2021-07-06 00:29:01
【问题描述】:
我正在解决 codeforces 上的一个问题,并且出现运行时错误,显然除非我按 enter 键,否则不会显示最后的输出。
代码如下:
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tests;
tests = sc.nextInt();
for (int i = 0; i < tests; i++) {
long n, m, number, result;
n = sc.nextLong();
m = sc.nextLong();
number = sc.nextLong();
if (number % n == 0) {
result = (n - 1) * m + (number / n);
} else {
result = (((number % n) - 1) * m) + (number / n) + 1;
}
System.out.println(result);
}
}
}
这是一个非常简单的问题,我认为我的答案是正确的,但是我在显示输出时遇到了问题 这是问题的链接: https://codeforces.com/contest/1506/problem/A
当我尝试以下输入时:
5
1 1 1
2 2 3
3 5 11
100 100 7312
1000000 1000000 1000000000000
我得到了正确的输出,但是像这样:
1
2
9
1174
最后一个输出只在我按回车时显示,然后显示 1000000000000。 我相信我从 codeforces 收到的运行时错误是因为正在纠正问题的机器人正在无休止地等待输入键。
我做错了什么,我该如何解决? 我通常使用 C 语言和 codeforces,这是我第一次使用 java,如有明显错误,请见谅。
感谢您的宝贵时间。
【问题讨论】:
-
不确定您的问题。您的程序正常运行。请准确地描述你在做什么。
-
另外...在 CLI 上输入内容后,您始终必须按 Enter 按钮。否则扫描器不知道下一个令牌。
-
对我也很好。看着代码,我认为这是真的。我认为问题是特定于 codeforces 的。如果这是真的,我不知道我们能如何帮助你。至少,我对那种环境一点也不熟悉。代码是对的。问题出在其他地方。
-
对不起,我编辑了问题,您需要按照问题中显示的方式输入输入,而不是全部在一行。
-
好吧,如果每行末尾都有一个 newline 字符,那么扫描仪就会有一些标记。然后,您必须在最后一行之后按 Enter 按钮。或者,您也可以复制另一个换行符并粘贴。