运行时错误-Java

运行时错误-Java,java,runtime-error,fibonacci,Java,Runtime Error,Fibonacci,我试图找到从stdin得到的给定N个输入集的偶数斐波那契数之和 这段代码在一些测试用例中运行良好,但是打印运行时错误没有给出测试用例的详细信息 问题链接: 密码 感谢您的帮助 如果您能帮我提供一个优化版本,我将更加感激。我认为问题在于java中的递归调用堆栈太深,因此java编译器将重新打印。为了优化这个问题,首先,你可以使用dp方法来解决这个问题。dp方法是减少问题的重复次数。 链接是 希望对您有所帮助。您的代码在某些情况下会抛出ArrayIndexOutOfBoundsEception 让我

我试图找到从stdin得到的给定N个输入集的偶数斐波那契数之和

这段代码在一些测试用例中运行良好,但是打印运行时错误没有给出测试用例的详细信息

问题链接:

密码 感谢您的帮助


如果您能帮我提供一个优化版本,我将更加感激。

我认为问题在于java中的递归调用堆栈太深,因此java编译器将重新打印。为了优化这个问题,首先,你可以使用dp方法来解决这个问题。dp方法是减少问题的重复次数。 链接是
希望对您有所帮助。

您的代码在某些情况下会抛出ArrayIndexOutOfBoundsEception

让我们考虑一下你在做什么:< /P> 您正在从用户处获得一个输入x 然后创建一个包含x个元素的数组,由用户输入 然后找到a的max元素 创建max元素的数组fib,并为从0到max-1的每个i计算fib[i] 假设用户输入:2

max将是2,因此fib将包含两个元素:{1,1}

现在,以下循环将导致异常:

    for(int i =0;i<x;i++) // x is 3
    {
        for(int j = 0;fib[j]<a[i];j++) // both fib[0] and fib[1] < a[0]
                                       // fib[2] would throw the exception

不清楚您试图对这个嵌套循环执行什么操作,但显然它不起作用。

你能指出你的代码中哪里有问题吗?指出确切的运行时错误也会有好处。斐波那契是世界上最糟糕的问题,所以在某些情况下,即使是超级计算机也需要100年才能得到答案。他的最大值被定义为一个整数,所以不必担心计算时间。解释一下它的用途:对于int i=0;i for(int i =0;i<x;i++) // x is 3 { for(int j = 0;fib[j]<a[i];j++) // both fib[0] and fib[1] < a[0] // fib[2] would throw the exception