Справочная информация:
Я работаю над проблемой Project Euler # 2, и у меня есть класс, созданный для решения этой проблемы. Для тех, кто еще этого не делал, это проблема:
Каждый новый термин в последовательности Фибоначчи генерируется путем добавления двух предыдущих терминов. Начиная с 1 и 2, первые 10 слагаемых будут: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, .... Рассматривая члены в последовательности Фибоначчи, значения которых не превышают четырех миллионов, найдите сумму четных членов.
Задача:
У меня есть программа, созданная для решения данной проблемы, но когда я ее запускаю, я получаю значение -1833689714 . Это не должно быть возвращаемое значение, так как я суммирую только положительные числа, и никаких умножений, которые я знаю, не выполняется. Как это исправить?
Мой код
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
int answer = resultsSum(fibonacci(4000000));
System.out.println(answer);
}
public static int resultsSum(ArrayList<Integer> resultList){
int total = 0;
for(Integer r : resultList){
total += r.intValue();
}
return total;
}
public static ArrayList<Integer> fibonacci(int n){
ArrayList fibEvens = new ArrayList<Integer>();
int a = 1;
int b = 2;
fibEvens.add(b);
for(int i = 1; i < (n - 1); i++) {
int tempVar = a;
a = b;
b += tempVar;
if(b % 2 == 0){
fibEvens.add(b);
}
}
return fibEvens;
}
}
https://projecteuler.net/problem=2