Soma de fibonacci

Pessoal eu tenho que fazer isso:

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

Find the sum of all the even-valued terms in the sequence which do not exceed one million.

Eu entendi que é para achar numeros da sequencia de fibonacci e somalos e que não exceda 1 milhão. Então fiz este codigo abaixo.


public class Fibonacci {
	
	public static long fib(int n){
	
	  if(n==0) return 0;
	   else
	    if(n==1) return 1;
	     else
	      return fib(n-1)+fib(n-2);
	
	
	}
	
	
	
	public static void main(String args[]){
	   
	   Fibonacci f = new Fibonacci();
	   long n = 0, soma =0;
	   for(int i=2; i<=29; i++){
	   	n = f.fib(i);
	   	soma += n;

	   	System.out.println(i + ":" + f.fib(i) +"     "+ soma);
	   }
	
	
	}
	
}

Ele acha todos os numeros da serie.
so que a soma para no numero 28 com o numero de fibonacci de
317811 e a soma da 832038. Assim isso não excede.
Mas na hora de dar o resultado para o programa da como errado.
Alguem sabe resolver?
grato.

O seu codigo esta certo rodei no TextPad e não apontou nenhum erro. Faça um programa simples e verifique se o java aponta o mesmo erro, talvez seja problema de configuração do JAVA

Pelo que entendi, é pra somar só os pares e que não excedam 1 M.

Mas não sei se recursivo vai não…