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…