Tag: fibonacci

NumberFormatException:无限或NaN

我有一个方法,取n并返回第n个斐波纳契数。 在方法实现中我使用BigDecimal来获取第n个Fibonacci数,然后我使用方法toBigInteger()来获取作为BigInteger对象的数字,这肯定是因为我在我的应用程序中处理大量数字。 我一直得到正确的结果,直到我通过1475作为我的方法的参数。 我得到NumberFormatException: Infinite or NaN在这种情况下NumberFormatException: Infinite or NaN没有任何明确的理由。 你能解释一下我为什么会得到这个例外吗? 这是我的方法: BigInteger getFib(int n){ double phi = (1 + Math.sqrt(5))/2; double squareRoot = (Math.sqrt(5)) + (1/2); BigDecimal bd = new BigDecimal(Math.floor(Math.pow(phi, n)/(squareRoot))); return bd.toBigInteger(); }

在java中,我如何找到第n个Fibonacci数?

确定Fibonacci序列很容易弄清楚: int num = 0; int num2 = 1; int loop; int fibonacci; System.out.print(num2); for (loop = 1; loop <= 10; loop ++) { fibonacci = num + num2; num = num2; num2 = fibonacci; System.out.print(" " + fibonacci); } 我的问题在于试图精确定位指定N的值。如果我想在序列中找到第6个元素,即8,我怎么能找到那个数字,只有那个数字?

无法启动RMI Fibonacci服务器

我正在学习Java RMI,我创建了一个非常简单的服务器来计算Fibonacci数。 服务器(FibonacciServer)创建一个负责计算序列(Fibonacci)的对象,该对象实现一个接口(IFibonacci): FibonacciServer.java: package myrmifibonacciserver; import java.net.MalformedURLException; import java.rmi.Naming; import java.rmi.RemoteException; public class FibonacciServer { public static void main(String args[]){ try{ Fibonacci fib = new Fibonacci(); Naming.rebind(“fibonacci”, fib); System.out.println(“Fibonacci Server ready.”); }catch(RemoteException rex){ System.err.println(“Exception in Fibonacci.main ” + rex); } catch (MalformedURLException ex) { System.err.println(“MalformedURLException ” + ex); } } } 斐波那契: package myrmifibonacciserver; […]

Fibonacci计算器与BigIntegers

我正在做一个家庭作业项目,我必须让用户输入一个数字,然后计算机将斐波纳契数字吐出一个。 我通常可以用int值来做到这一点,除了对于这个程序,我需要使用BigInteger类型,因为int,long,double等类型太小而不能保存我需要的值。 所以,这是我得到的代码。 问题是它不打印它应该的数字。 我的import: import java.math.*; import java.util.Scanner; 其余的代码: public static void main(String args[]) { //input to print Fibonacci series up to how many numbers System.out.println(“Enter number up to which Fibonacci series to print: “); BigInteger i = BigInteger.valueOf(new Scanner(System.in).nextLong()); System.out.println(“First ” + i + ” Fibonacci numbers: “); //printing Fibonacci series upto number […]

如何使用我的Fibonacci方法实现Tail递归?

我正在尝试计算大量的Fibonacci序列,因此我使用大整数。 我的方式可以达到10000左右,但是我的堆栈空间不足。 我意识到我可以增加堆栈和堆空间,但我的理解是尾递归可以解决空间问题。 这是我的代码.. public class FibRecursion{ static BigInteger[] fval; public static void main(String[] args) { int index; Scanner input = new Scanner(System.in); index = input.nextInt(); fval = new BigInteger[index + 1]; System.out.println(fib_rec(index)); } public static BigInteger fib_rec(int index){ BigInteger result = BigInteger.ONE; if(index <= 2){ return result; } else{ if(fval[index] != null){ result=fval[index]; } […]

为什么Java正则表达式引擎会在+重复上抛出StringIndexOutOfBoundsException?

我写了一个正则表达式模式来找到Fibonacci数字(没关系,为什么,我刚刚做了)。 它按预期工作得非常好( 参见ideone.com ): String FIBONACCI = “(?x) .{0,2} | (?: (?=(\\2?)) (?=(\\2\\3|^.)) (?=(\\1)) \\2)++ . “; for (int n = 0; n < 1000; n++) { String s = new String(new char[n]); if (s.matches(FIBONACCI)) { System.out.print(n + " "); } } // 0 1 2 3 5 8 13 21 34 55 89 144 […]