在SPOJ上运行以下代码时,我收到运行时错误(NZEC).如果你们中的任何人愿意指出发生了什么,我将非常感激.
//0<=A<=B<=10^18, 1<=N<=10^18
using System;
class any
{
static void Main()
{
long t = long.Parse(Console.ReadLine());
ulong a, b, n;
for(long k = 0; k < t; k++)
{
string[]s = Console.ReadLine().Split(' ');
a = ulong.Parse(s[0]);
b = ulong.Parse(s[1]);
n = ulong.Parse(s[2]);
Console.WriteLine(diviEntre2(a, b, n));
}
}
static ulong diviEntre2(ulong f, ulong c, ulong n)
{
ulong k, s, m;
if (f == c && c % n == 0 && f != 0) k = c/n;
else
{
s = f/n;
m = c/n;
k = m - s;
}
return k;
}
}
Run Code Online (Sandbox Code Playgroud)
对于Java,当代码抛出异常时返回NZEC.对于Spoj等上的问题,如果测试用例没有被标识符字符串终止,则输入中的最后一行通常会导致此异常.
对于这种情况,一个有用的hack是将你的代码包装在try-catch中,如果有异常则简单地返回.捕获的异常表示您已到达输入结束.
public static void main(String[] args) {
temp program = new temp();
try{
program.begin();
} catch(Exception e){
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道当 main 函数为 void 时 java 返回什么,但这可能是此错误消息的原因。Spoj 还会检查程序的返回值,它期望 0(成功/非错误代码)。我想将 main 函数更改为 return 0 将修复此错误消息。
我刚刚在 C 程序中遇到了同样的错误,并且添加 return 0 将错误更改为接受。
| 归档时间: |
|
| 查看次数: |
24627 次 |
| 最近记录: |