Closed. This question needs details or clarity 。它目前不接受答案。
想改善这个问题吗?添加细节并通过 editing this post 澄清问题。
去年关闭。
Improve this question
我被要求确定可以在我的系统上显示的最大斐波那契数,我想知道如何做到这一点。
这是我确定第 n 个斐波那契数的简单应用程序
我会先尝试使用少量内存,例如
更新:即使有 16 MB 的限制,它也计算了 13K 项并且仍在运行。
想改善这个问题吗?添加细节并通过 editing this post 澄清问题。
去年关闭。
Improve this question
我被要求确定可以在我的系统上显示的最大斐波那契数,我想知道如何做到这一点。
这是我确定第 n 个斐波那契数的简单应用程序
import java.util.Scanner;
public class FibonacciTest
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.printf("please enter the nth fibonacci number: ");
int n = input.nextInt();
System.out.printf("%d\n", fibonacci(n));
}// end main
public static int fibonacci(int n)
{
// determines nth fibonacci number
int fib = 1;
int temp = 0;
if (n == 1)
return 0;
else
{
for (int i = 2; i < n; i++)
{
int last = fib;
fib += temp;
temp = last;
}
return fib;
}
}// end fibonacci
}
最佳答案
为此,您需要使用 BigInteger
运行此程序,直到您的应用程序因资源不足而停止。
public static void main(String... args) {
BigInteger a = BigInteger.ONE;
BigInteger b = BigInteger.ONE;
String last = null;
try {
for (long count = 1; ; count++) {
BigInteger c = a.add(b);
last = c.toString();
a = b;
b = c;
if (count % 10000 == 0)
System.out.println("... " + count);
}
} catch (Throwable e) {
System.out.println("The largest value which was calculated was");
System.out.println(last);
}
}
我会先尝试使用少量内存,例如
-mx16m
更新:即使有 16 MB 的限制,它也计算了 13K 项并且仍在运行。
关于java - 如何确定最大的斐波那契数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13492807/
10-10 08:57