Recursão

Estou precisando fazer um método recursivo para gerar a sequencia an = 2n²-1, ja pensei, pensei e não sei onde encaixar a chamada dele mesmo.

public static void main(String[] args) {
int a = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero de elementos a ser gerado: "));

}
public static double seq(int x){

    if (x==0){
        return 1;
    }
    else
        
        return 2 * Math.pow(x, 2) - 1;
}

Porque você precisa de recursão? Quantos termos quer calcular?

A quantidade de termos é colocada em “a” pelo usuário?

public static List<Double> gerarSequencia(int primeiroTermo, int ultimoTermo) {
    List<Double> seq = new ArrayList<>();
    for (int i = primeiroTermo; i <= ultimoTermo; i++) {
        seq.add((2.0 * Math.pow(i, 2)) - 1.0);
    }
    return seq;
}

Isso, “a” pega a quantidade de termos, a recursão seria pra ir de 1 até esse termo gerando o valor dado pela sequencia.

O código que coloquei já resolve? Ou você quer usar o valor obtido a cada cálculo para ser o “n” no próximo cálculo (aí sim usaria a recursão)?