Java 难以满足第一个euler项目的测试用例

Java 难以满足第一个euler项目的测试用例,java,testing,Java,Testing,我最近开始了Euler项目。这是我的第一个项目,没有针对测试用例2、3、4实现。请看一下我的代码,告诉我遗漏了哪些测试用例 可在此网页上找到问题: 我的代码: import java.io.*; public class Solution { public static void main(String[] args)throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(Syst

我最近开始了Euler项目。这是我的第一个项目,没有针对测试用例2、3、4实现。请看一下我的代码,告诉我遗漏了哪些测试用例

可在此网页上找到问题:

我的代码:

import java.io.*;
public class Solution {
public static void main(String[] args)throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in) );
    int testCases = Integer.parseInt(in.readLine());
    int arr[] = new int[testCases];
    if(testCases <= 1 || testCases >= 100000)
    {System.out.print("exit 1");
        System.exit(0);}
    for(int i = 0; i < testCases; i++)
    {

        arr[i] = Integer.parseInt(in.readLine());  
        if(arr[i] <= 1 || i >= 1000000000 )
        {System.out.print("exit 2"); 
            System.exit(0);}        }
    for(int i = 0; i < testCases; i++)
    {
        System.out.println(FactorSum( arr[i] ) );   
    }
}

public static int FactorSum(int input)
{
    int sum = 0;
    for(int i = 0 ; i < input ; i++)
    {
        if(i%5 == 0 || i%3 == 0)
        {
            sum+=i;
        }
    }
    return sum;
}
}
import java.io.*;
公共类解决方案{
公共静态void main(字符串[]args)引发IOException{
BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in));
int testCases=Integer.parseInt(in.readLine());
int arr[]=新的int[testCases];
如果(测试用例=100000)
{系统输出打印(“出口1”);
System.exit(0);}
for(int i=0;i

请帮忙

显然,该站点评估了正确性和算法效率(通过使用超时机制)

主机期望O(t)-在你的解决方案中,它是O(t*n),因为你的因子化循环和主循环中的额外-当n=10 ^ 9时考虑复杂性的差异。(他们如何评估这一点似乎与固定的时间限制一样简单——请参阅。)

也一定要考虑T的“边缘情况”(看起来像你所覆盖的)和N(特别是n=10 ^ 9),因为你的代码在这个边缘情况下失败了(由于“不正确”和“超时”)。“不正确”失败是由于未考虑所使用语言类型的范围

我强烈建议阅读关于每个问题的讨论,因为这是一个彻底的讨论

此外,除了注释中的更改外,还需要对正确性进行一次更改:

改变

if(arr[i] <= 1 || i >= 1000000000 )
if(arr[i]=100000000)

if(arr[i]<1 | | arr[i]>100000000)
注意:当您指的是
arr[i]
时,您使用了
i
(这也包括包含的更改)

您将需要在不使用循环的情况下求解N上的因式分解求和。除了正确的输出之外,这也是他们正在测试的本质

再次强调,阅读每个问题的讨论部分。
祝你好运。

注意情况(参考资料)
1嘿,@Andy我听从了你的建议。现在我不再得到测试用例4的错误,但是程序仍然不能满足测试用例2和3。请帮助!!
if(arr[i] < 1 || arr[i] > 1000000000 )