Ajuda programa simples

4 respostas
bruwww

Sendo H=1+1/2+1/3+1/4+...+1/N, fazer um programa para solicitar N e gerar o número H.

galera, to com um probleminha na lógica desse programa, alguém dá um help, do jeito que eu fiz n to conseguindo

float soma=0;
		float n=1;
		float qtd=1;
		System.out.println("N= ");
		n=Keyboard.readInt();

		while(qtd<=n){
			soma=soma+(1/n);
			n++;
			System.out.println("O valor da soma é: "+soma );
			break;

		}

4 Respostas

drsmachado

Bem, vejamos.
Se ele precisa começar com 1, não deve ser a variável n a receber o valor digitado e, sim, a qtd, certo?

n=Keyboard.readInt(); 
//troque por 
qtd=Keyboard.readInt();
snowblacksoul

Ola bruwww

Acho que já responderam no primeiro post que tinha colocado.
mas vamos lá!

você terá que usar o Scanner, faça exatamente como deixei, mas para colocar mais valores como vc está querendo precisa colocar vários scanner!

public class testss {

    public static void main(String[] args) {

        float soma  =   0;
        float n     =   0;
        float m     =   0;
        


        Scanner MeuObjeto = new Scanner (System.in);
        n = MeuObjeto.nextInt();

        Scanner MeuObjeto2 = new Scanner (System.in);
        m = MeuObjeto.nextInt();

          soma = (n+m);
            
                           
                System.out.println(soma);
    
        }

    }
JM4X

Não se esqueça que se fizer uma divisão de inteiros, a resposta será só a parte inteira do resultado.

acho que ficaria assim o seu algoritmo:

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		System.out.println("Digite um numero:");
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		double resp = funcao(n);
		System.out.println("Resposta: "+resp);
	}
	
	public static double funcao(int n) {
		double total = 0;
		for (double i = 1; i <= n; i++) {
			total += 1/i;
		}
		return total;
	}
}

[]'s

maykoone
bruwww:
Sendo H=1+1/2+1/3+1/4+...+1/N, fazer um programa para solicitar N e gerar o número H.

galera, to com um probleminha na lógica desse programa, alguém dá um help, do jeito que eu fiz n to conseguindo

float soma=0;
		float n=1;
		float qtd=1;
		System.out.println("N= ");
		n=Keyboard.readInt();

		while(qtd<=n){
			soma=soma+(1/n);
			n++;
			System.out.println("O valor da soma é: "+soma );
			break;

		}

pelo que eu entendi vc vai ter que somar a divisão de 1 por todos os números até n, sendo assim acho q vc deveria incrementar a qtd em vez de N, pois N é o limite informado e vc tá comparando
a qtd para realizar a iteração. qtd também deve ser usado para realizar a divisão.

...

		while(qtd<=n){
			soma=soma+(1/qtd);
			qtd++;
		}
            System.out.println("O valor da soma é: "+soma );
[/quote]
Criado 17 de junho de 2011
Ultima resposta 17 de jun. de 2011
Respostas 4
Participantes 5