Java 难以满足第一个euler项目的测试用例
我最近开始了Euler项目。这是我的第一个项目,没有针对测试用例2、3、4实现。请看一下我的代码,告诉我遗漏了哪些测试用例 可在此网页上找到问题: 我的代码: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
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 )