Dúvida com função recursiva

Estou com um problema em java (lógico estou na área de java).
Um exercício “simples” não estou conseguindo fazer os resultados baterem. Já fiz teste de mesa e tudo mais como é recursiva eu não consigo ver a manipulação da varial e não sei onde estou errando.

O código é

import javax.swing.JOptionPane;
public class EXFat02 {
    public static void main (String args[]){
        double n;
       
        n = Double.parseDouble(JOptionPane.showInputDialog("Colocar um valor qualquer"));
       
        System.out.println("A soma da divisão de n menos o contador é " +ffat(n));
    }

static double ffat(double num){
        double s = 0;
        int cont = 0;
        
        if (num - cont != 1){
            s = (1 /(num - cont)) + (ffat(cont +1));
        }
        else {
            s =  (1/(num - cont));
            return s;
        }
        return s;
    }
}

Estou fazendo o valor da varial “n” como 3 para o teste de mesa.
Só que o valor que tem que ser é 1.833, no resultado final, mas está saindo 1.33.

Eu já não sei o porque isso está acontecendo, fiz teste de mesa, fluxograma e tudo mais mesmo assim quando eu passo o código ai para java os valores não batem, não sei porque.

Obs: Tem que ser uma recursiva chamando a si-mesma.

Coloquei o Valor de “n” como 3 e o resultado está dando 1.33, mas o certo é 1.83.

O exercício é fazer S = 1/n + 1/(n-1) + … + 1/1

Se alguém puder me ajudar eu agradeço.

UP - alguém pode me ajudar?

Se é recursiva, ela chama a si mesma, rs. Brincadeirinha, mas não pude deixar escapar.

Bem, aparentemente o cálculo é simples. Eu fiz um aqui rapidinho e deu o resultado esperado. Dê uma olhada e confronte com o que você fez:

[code]
class Ex {
public static void main(String[] a) {
System.out.println("Resultado: " + calcular(3d));
}

private static double calcular(double n) {
    if (n == 1) {
        return 1;
    } else {
        return (1 / n) + calcular(n - 1);
    }
}

}[/code]

Serviu, vlws mesmo.

Entendi o que você e é mais rápido do seu jeito. vlws