Deitel 8 ediÇÃo - exercÍcio fatorial 4.37b

eu tentei o calculo e achei deve erro calculo… veja os comando e resultado em baixo

o livro “Java - como programar 8 edição” exercícios 4.37 - B.

4.37-B) Escreva um aplicativo que estima o valor da constante matemática a fórmula a seguir. Permita inserir o número de termos a calcular.

mais ou menos exemplo esse imagem em baixo…

Comando java

import java.util.Scanner;
public class Pag118Cap437A {

	public static void main(String[] args) {
		
		Scanner sca = new Scanner(System.in);
		
		System.out.println("Inserir um número constante: ");
		int fat = sca.nextInt();
		
		int e = 1;
		int cont = 1;
		
		while(cont <= fat){
			
			e =1 + 1 / cont;
			
			System.out.println(e);
			
			cont++;
			
		}
	}
}

O resultado fica esse


Inserir um número constante: 
5

2
1
1
1
1

será esse calculo correto?
já tinha esquecido sobre matemática…

Espero que me ajude…

Não se deve fazer contas com int. Faça com double. Troque as declarações das variáveis ‘fat’ e ‘e’.

Cara, lah no final do loop tu tem que colocar count = count*(count + 1);
Da forma que tah, teu valor de “e” vai ser 1 + 1/2 + 1/3 + 1/4+ … + 1/n,
Mas da forma que eu disse, o valor serah 1 + 1/2 + 1/6 + 1/24 + … 1/n!.
e nao esqueca de mudar os numeros para double.
espero ter ajudado.
Abraço.

[quote=jsnpereira]eu tentei o calculo e achei deve erro calculo… veja os comando e resultado em baixo

o livro “Java - como programar 8 edição” exercícios 4.37 - B.

4.37-B) Escreva um aplicativo que estima o valor da constante matemática a fórmula a seguir. Permita inserir o número de termos a calcular.

mais ou menos exemplo esse imagem em baixo…

Comando java

import java.util.Scanner;
public class Pag118Cap437A {

	public static void main(String[] args) {
		
		Scanner sca = new Scanner(System.in);
		
		System.out.println("Inserir um número constante: ");
		int fat = sca.nextInt();
		
		int e = 1;
		int cont = 1;
		
		while(cont <= fat){
			
			e =1 + 1 / cont;
			
			System.out.println(e);
			
			cont++;
			
		}
	}
}

O resultado fica esse


Inserir um número constante: 
5

2
1
1
1
1

será esse calculo correto?
já tinha esquecido sobre matemática…

Espero que me ajude… [/quote]

O problema está na lógica… principalmente nessa linha…

e =1 + 1 / cont; 

Você não está acumulando o resultado em “e”, só o está substituindo. Mais, você não está dividindo “1” pelo fatorial do número.
Tente fazer algo assim:

 e+= 1 / fatorial(cont);

Tem ideia de como fazer isso?

Ao postar tópicos (ou o título do tópico), por favor, desligue o caps lock.

[quote=matheuslmota]Cara, lah no final do loop tu tem que colocar count = count*(count + 1);
Da forma que tah, teu valor de “e” vai ser 1 + 1/2 + 1/3 + 1/4+ … + 1/n,
Mas da forma que eu disse, o valor serah 1 + 1/2 + 1/6 + 1/24 + … 1/n!.
e nao esqueca de mudar os numeros para double.
espero ter ajudado.
Abraço.[/quote]

eu testei esse programa… veja em baixo…

import java.util.Scanner;
public class Pag118Cap437A {

	public static void main(String[] args) {
		
		Scanner sca = new Scanner(System.in);
		
		System.out.println("Inserir um número constante: ");
		double fat = sca.nextInt();
		
		System.out.println();
		
		int count = 1;
		
		while(count <= fat){
			
			count = count*(count + 1);
			
			System.out.println(count);
			
		}
	}
}

o resultado fica esse

Inserir um número constante: 
100

2
6
42
1806

será esse calculo está correto? estou pouco meio complicado esse tipo fatorial…