我的工作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