Java 模m的斐波那契n
我正在计算以下是对您的两个异常/错误的解释Java 模m的斐波那契n,java,arrays,algorithm,fibonacci,Java,Arrays,Algorithm,Fibonacci,我正在计算以下是对您的两个异常/错误的解释 OutOfMemoryError异常:由于您试图创建一个巨大的数组,远远超过了可能的大小。参考这个问题 NegativeArraySizeException:由于您正在将一个long转换为一个整数(代码long[]arr=new long[(int)n+1];)。请阅读以下内容:。(基本上,您在某个点溢出,得到的整数是负数) 以下是对您的两个例外/错误的解释 OutOfMemoryError异常:由于您试图创建一个巨大的数组,远远超过了可能的大小。参考
long[]arr=new long[(int)n+1];
)。请阅读以下内容:。(基本上,您在某个点溢出,得到的整数是负数)以下是对您的两个例外/错误的解释
long[]arr=new long[(int)n+1];
)。请阅读以下内容:。(基本上,您在某个点溢出,得到的整数是负数)如果
n
可以10^18,那么即使您不使用数组,它仍然会超时,因为您将运行循环直到n
(即10^18)来计算第n个斐波那契数
可以使用矩阵求幂法(线性递归法)。你可以在博客中找到详细的解释和程序。运行时间为O(log n)
希望这有帮助 如果
n
可以10^18,那么即使您不使用数组,它仍然会超时,因为您将运行循环直到n
(即10^18)来计算第n个斐波那契数
可以使用矩阵求幂法(线性递归法)。你可以在博客中找到详细的解释和程序。运行时间为O(log n)
希望这有帮助 您的代码有两个问题
您的代码有两个问题
你能告诉我们序列中的前10个数字吗?数组大小似乎是由
Integer.MAX\u VALUE
所限定的。使用10^18
作为n
的值(远大于2^32
)会导致错误。您可能不需要数组来计算第n个斐波那契数。尝试private static long getfibonaccihugfast(long n,long m){long first=0;long second=1;long value=0;for(int i=2;i
你能给我们看一下序列中的前10个数字吗?数组大小似乎受整数的限制。最大值
如前所述。使用10^18
作为n
的值(远大于2^32
)会导致错误。您可能不需要数组来计算第n个斐波那契数。尝试private static long getfibonaccihugfast(long n,long m){long first=0;long second=1;long value=0;for(int i=2;i