Informática, perguntado por ramonamaterasupei882, 10 meses atrás

Faça um programa que leia um valor N inteiro e positivo, calcule e mostre o valor de E, conforme a fórmula a seguir: E=1+1/1!+1/2!+1/3!+...1/N! Não estou conseguindo fazer esse programa na linguagem C de jeito nenhum :(

Soluções para a tarefa

Respondido por oliveirapedroo
11

→→→

Resposta:

#include <stdio.h>

#include <string.h>  

int main(){

int N, E = 1, i, j, num, fatorial;

printf("Digite um numero: ");

scanf("%d", &N);

 

for(i=1; i<=N; ++i){

 num = 1.0/i;

 fatorial = 1;

 for(j=num; j>0; --j){ //calculando o fatorial de 1/i

  fatorial*=num;

 }

 E += fatorial; //"E" é somado ao fatorial da divisão de 1 por i  

}

printf("Valor de 'E': %d", E);

}

Explicação:

O cálculo do fatorial só será executado duas vezes em 1/1 e 1/2 (1/2 = 0.5 que arredondado dá 1), que dará 1 em que 1! = 1. Depois de 1/1 e 1/2 virá 1/3, 1/4... que sempre vão dar 0 (não passando pelo cálculo por conta da condição "(j>0)").

O resultado sempre será N + 1, por causa que será feita a divisão inteira de 1/i fazendo com que o resultado sempre seja 1 ou 0 em que o fatorial dos dois é 1, com isso o resultado é N que somado mais o 1 do início resulta em N+1.

Por exemplo "E" de 20:

Fatorial de 1/1 (1.000000) = 1

Fatorial de 1/2 (0.500000) = 1

Fatorial de 1/3 (0.333333) = 1

Fatorial de 1/4 (0.250000) = 1

Fatorial de 1/5 (0.200000) = 1

Fatorial de 1/6 (0.166667) = 1

Fatorial de 1/7 (0.142857) = 1

Fatorial de 1/8 (0.125000) = 1

Fatorial de 1/9 (0.111111) = 1

Fatorial de 1/10 (0.100000) = 1

Fatorial de 1/11 (0.090909) = 1

Fatorial de 1/12 (0.083333) = 1

Fatorial de 1/13 (0.076923) = 1

Fatorial de 1/14 (0.071429) = 1

Fatorial de 1/15 (0.066667) = 1

Fatorial de 1/16 (0.062500) = 1

Fatorial de 1/17 (0.058824) = 1

Fatorial de 1/18 (0.055556) = 1

Fatorial de 1/19 (0.052632) = 1

Fatorial de 1/20 (0.050000) = 1

Valor de 'E': 21

espero ter ajudado

→→→

Perguntas interessantes