Java - Exercicio com o LaçoFor

1 resposta
java
B
Tenho o seguinte problema: Sendo soma = 1 + 1/2 + 1/3 + 1/n. Faça um programa que calcule o valor de soma com n termos.

Tentei resolver este problema com um laço for, mas a variável resultado  1, quando a divisão é entre 1 e 1, e  0 quando a divisão é feita entre 2 e 3, entre 3 e 5, e assim por diante. Não sei qual o problema na minha lógica.

Minha solução está abaixo:

package com.bruno.cursojava.aula17;

import java.util.Scanner;

public class Ex34 {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	System.out.println("Quantos termos haverá na sequência?");
	int termos = scan.nextInt();
	double soma = 0;
	double resultado;
	int cont = 1;
	for (int i = 1; i <= termos; i++) {
		resultado = i/cont;
		System.out.println(i + "divido por " + cont + " = " + resultado);
		soma += resultado;
		cont += 2;
	}
	System.out.println("Analisando a sequência com " + termos + " a soma de todos os elementos é igual a " + soma);
}

}

1 Resposta

Jothar_Aleksander

Divisão de inteiros gera inteiros. Isso significa que se o resultado for fracionário, a parte facionária é ‘descartada’. Logo, 1/1 = 1; 2/3 = 0,67; 3/5 = 0,6. Nesses dois últimos casos trará como resultado somente a parte inteira que, nesse caso é zero. Caso queira que o compilador admita os valores fracionários, tu deve usar um número de ponto flutuante de precisão simples (float) ou dupla (double).

Criado 4 de outubro de 2019
Ultima resposta 4 de out. de 2019
Respostas 1
Participantes 2