我的工作Project Euler problem #2:代码的工作非常缓慢,不打印输出
在Fibonacci序列中的每个新名词是通过将前两个方面产生 。通过 开始1和2中,第一10项将是:
1,2,3,5,8,13,21,34,55,89,...
查找的总和所有序列中的偶数项不超过四百万。
我的代码:
public class Two {
public static void main(String[] args) {
Two obj = new Two();
int sum = 0, i = 1;
while (obj.fibonacci(i) < 4000001) {
if (obj.fibonacci(i) % 2 == 0) {
sum += obj.fibonacci(i);
i++;
}
}
System.out.println(sum);
}
public int fibonacci(int n) {
if (n == 0) {
return -1;
}
if (n == 1) {
return 1;
}
if (n == 2) {
return 3;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
}
请帮助我,什么是错的代码,当我运行它。它不显示在控制台上的输出和总时间将超过5分钟
感谢
项目欧拉#2 – st0le 2010-09-18 10:09:02
斐波那契序列以0和1开头...... – 2010-09-25 09:06:27