O que está acontecendo é que o valor no índice 0 é inicializado com 0, assim na primeira soma, o valor no índice 2 será de 1.
representação do array antes da iteração: [0, 1, 0, 0, 0] após a primeira iteração: [0, 1, 1, 0, 0] após a segunda iteração: [0, 1, 1, 2, 0] e assim por diante...
Você pode adicionar o número 1 ao índice 0.
static int[] vetorN(int n){
int[] vetor = new int[n];
vetor[0] = 1;
vetor[1] = 1;
for(int i = 2; i < vetor.length; i++){
vetor[i] = vetor[i - 2] + vetor[i - 1];
}
return vetor;
}
public static void main(String[] args) {
int[] v = vetorN(5);
System.out.println(Arrays.toString(v));
}
Agora aquela mesma representação com essa alteração:
representação do array antes da iteração: [1, 1, 0, 0, 0] após a primeira iteração: [1, 1, 2, 0, 0] após a segunda iteração: [1, 1, 2, 3, 0] e assim por diante...