Java 大斐波那契数的舍入

Java 大斐波那契数的舍入,java,java.util.scanner,fibonacci,Java,Java.util.scanner,Fibonacci,伙计们,希望你们能告诉我,我错过了什么。我是编程新手,现在正在为Project Euler解决问题。其中一项任务是计算斐波那契序列的偶数之和。我编写的代码通过了4/5测试。这是: //N is input (N<=4*10^16), let's find n by Binet's formula double a = log10(sqrt (5) * N); double b = log10((1 + sqrt (5)) / 2); int n = (int) (a / b); /

伙计们,希望你们能告诉我,我错过了什么。我是编程新手,现在正在为Project Euler解决问题。其中一项任务是计算斐波那契序列的偶数之和。我编写的代码通过了4/5测试。这是:

//N is input (N<=4*10^16), let's find n by Binet's formula 

double a = log10(sqrt (5) * N);
double b = log10((1 + sqrt (5)) / 2);
int n = (int) (a / b); 

//Using same formula, we find every Fibonacci number till n
for (int i = 1; i <= n; i++){
  a = (1 + sqrt(5)) / 2;
  long fiboNum = Math.round (Math.pow(a,i) / sqrt(5));

//N为输入(N
double
的精度有限。请尝试使用
BigDecimal
,它的精度仅受可用内存大小的限制

下面是如何使用
BigDecimal
s计算平方根:

pow()

四舍五入:


其他操作,如加法和除法,作为方法内置于
bigdecimic
中。

double
将在2的53次幂后关闭整数。