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.