[RESOLVIDO]Encontrar o valor de H na serie H = 1-1/2+1/3+...+1/n*/
5 respostas
Janerson
Olá Galera me ajudem a encontrar um soluçao lógica para seguinte serie
H = 1-1/2+1/3+...+1/n...
preciso achar o valor de H mas por causa daquele menos -1/2, não consigo chegar a uma solução
ex: se eu entrar coo o numero de termos (n) = 1 o resultado seria 1
se eu entrar coo o numero de termos (n) = 2 o resultado seria 0.5
se eu entrar coo o numero de termos (n) = 3 o resultado seria 0.83 e assim por diante
o problema é justamente o segundo termo onde faz a divisão de um número negativo por 2.
/*Entrar com o número de termos da série (n) e imprimir o valor de H, sendo:H = 1-1/2+1/3+...+1/n*/importjava.util.Scanner;importjava.text.DecimalFormat;publicclassExercicio60{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);DecimalFormatdc=newDecimalFormat("0.000");intn;doubleh=0,h1=-0.5;System.out.print("Números de termos: ");n=in.nextInt();for(doublei=1;i<=n;i++){h+=(1/i);}System.out.println("Valor de H: "+dc.format(h));}}
Bom dia Janerson, vi sua lógica aqui e pela descrição do seu problema está faltando subtrair caso o valor de i seja 2.
Sua lógica esta sempre somando o resultado da divisão e na descrição do seu problema o resultado de 1/2 deve ser subtraído e não somado.
Janerson
aganhara:
Bom dia Janerson, vi sua lógica aqui e pela descrição do seu problema está faltando subtrair caso o valor de i seja 2.
Sua lógica esta sempre somando o resultado da divisão e na descrição do seu problema o resultado de 1/2 deve ser subtraído e não somado.
Entao esse é o problema coma faço para ele subtrair apenas -1/2 e depois somar a sequencia…lembrando q tenho que fazer isso usando o laço
ou seja so será subtraído no segundo looping do contador == 2, apos isso ele vai somar toda sequencia…mas como fazer isso?
A
aganhara
Janerson:
aganhara:
Bom dia Janerson, vi sua lógica aqui e pela descrição do seu problema está faltando subtrair caso o valor de i seja 2.
Sua lógica esta sempre somando o resultado da divisão e na descrição do seu problema o resultado de 1/2 deve ser subtraído e não somado.
Entao esse é o problema coma faço para ele subtrair apenas -1/2 e depois somar a sequencia…lembrando q tenho que fazer isso usando o laço
ou seja so será subtraído no segundo looping do contador == 2, apos isso ele vai somar toda sequencia…mas como fazer isso?
Então, rs sua resposta está na pergunta. Pode ser resolvido desta forma:
for (double i = 1; i <= n; i++)
h += (i == 2 ? - (1 / i) : (1 / i));
Janerson
aganhara:
Janerson:
aganhara:
Bom dia Janerson, vi sua lógica aqui e pela descrição do seu problema está faltando subtrair caso o valor de i seja 2.
Sua lógica esta sempre somando o resultado da divisão e na descrição do seu problema o resultado de 1/2 deve ser subtraído e não somado.
Entao esse é o problema coma faço para ele subtrair apenas -1/2 e depois somar a sequencia…lembrando q tenho que fazer isso usando o laço
ou seja so será subtraído no segundo looping do contador == 2, apos isso ele vai somar toda sequencia…mas como fazer isso?
Então, rs sua resposta está na pergunta. Pode ser resolvido desta forma:
for (double i = 1; i <= n; i++)
h += (i == 2 ? - (1 / i) : (1 / i));
Vlw cara funfoou blza
fiz aqui tbm so que usei a condiçao if
vou deixar o meu código com o operador ternario, pois assim diminui as linha do código