我正在开发一个查找斐波那契数列的程序。作业的第一个版本要求返回长数据类型,现在我们必须更改函数以返回 BigInteger。我不知道如何更改我的函数以发回 BigInteger 类型。这是我所拥有的:
public static BigInteger fibonacci_Loop(int f) {
BigInteger previous, current;
for(int i = 0; i < f; i ++) {
BigInteger sum = previous.add(current);
previous = current;
current = sum;
}
return previous;
}
它不会运行,因为它希望我初始化前一个和当前的值,并且任何时候我这样做都不会返回正确的数字。我不完全确定如何使用 BigInteger,任何建议将不胜感激。
最佳答案
下面的代码对我有用。将 previous 初始化为零,将 current 初始化为 1,并以同样的方式运行循环。请注意,循环的运行速度比所需的斐波那契指数小一。
public static BigInteger fibonacci_Loop(int f) {
BigInteger previous = BigInteger.ZERO;
BigInteger current = BigInteger.ONE;
for(int i = 0; i < f-1; i ++) {
BigInteger sum = previous.add(current);
previous = current;
current = sum;
}
return previous;
}
关于java - 将函数从返回 long 更改为 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250668/