我不是一个非常有经验的程序员,所以请原谅这个问题:D我实现了这段短代码来计算第(n)个斐波那契数,但是当我变大时,我的BigDecimal似乎不再起作用。 我得到以下错误:
Exception in thread "main" java.lang.NumberFormatException
at java.math.BigDecimal.(BigDecimal.java:494)
at java.math.BigDecimal.(BigDecimal.java:383)
at java.math.BigDecimal.(BigDecimal.java:806)
at java.math.BigDecimal.valueOf(BigDecimal.java:1274)
at Fibonacci.next2(Fibonacci.java:42)
at FibonacciPrint.main(FibonacciPrint.java:23)
这是我的代码:
int index;
public Fibonacci(int index){
this.index=index;
}
public BigDecimal next2(){
System.out.print(index + " ");
return BigDecimal.valueOf(((Math.pow(1 + Math.sqrt(5), index)-
Math.pow(1-Math.sqrt(5),index))
/(Math.pow(2,index)* Math.sqrt(5))));
}
和印刷课:
Fibonacci f2 = new Fibonacci(Integer.parseInt(args[0]));
long startTime2 = System.currentTimeMillis();
line23:
System.out.println(f2.next2());
long endTime2 = System.currentTimeMillis();
System.out.println("Total execution time: " + (endTime2-startTime2) + "ms");
有人知道如何解决此问题吗?