Desse jeito que eu fiz só está dividindo e somando os resultados, não está subtraindo. O que tenho que fazer para ficar de acordo com o exercício?

package javaapplication9;
public class JavaApplication9 {
public static void main(String[] args) {

    int impares = 1;
    int ordem;
    double soma = 0;
    for (ordem = 1; ordem <= 50; ordem++) {
        soma += (double) impares / ordem;
        impares = impares + 2;
    }
    System.out.println(soma);
}

}

Perceba que você não está mandando o algoritmo subtrair valor algum, apenas somar.

Exatamente. Tem como eu dividir, subtrair e somar em um único laço?

Você pode fazer o que quiser dentro de um laço. :slight_smile:

Exemplo de como resolver seu problema:

public class JavaApplication9 {

	public static void main(String[] args) {
		double soma = 0;
		int sinal = 1;
		for (int dividendo = 1, divisor = 1; divisor <= 50; dividendo += 2, divisor += 1) {
			if (divisor > 1) {
				System.out.print(sinal < 0 ? "-" : "+");
			}
			System.out.printf("%d/%d", dividendo, divisor);
			soma += sinal * (dividendo / (double) divisor);
			sinal = -sinal;
		}
		System.out.printf(" = %f\n", soma);
	}
}
1 curtida

Entendi, cada vez que laço é executado a variável sinal troca de sinal. Muito obrigado.

1 curtida