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:
\mathrm{E}=1+1 \frac{}{1!+\frac{1}{2!}+\frac{1}{3!}+\cdots+\frac{1}{N!}}

Passo 1

O enunciado pede que a gente leia um valor inteiro e positivo N e calcule o valor de E dado pela fórmula abaixo:
E = 1 + \frac{1}{1! + \frac{1}{2!} + \frac{1}{3!} + \cdots + \frac{1}{N!}}
Perguntas claras:
  • Qual é a entrada? Um inteiro positivo N.
  • O que precisamos devolver? O valor numérico de E calculado pela fórmula acima.
Informações relevantes que o enunciado dá:
  • A soma no denominador começa em 1! e termina em N!.
  • Cada termo do denominador é \frac{1}{k!} para k=1,2,\dots,N.

Passo 2

Entendendo o que é fatorial (porque a fórmula usa k!):
  • Definição: para n\ge 1 inteiro,
n! = n \cdot (n-1) \cdot (n-2) \cdots 2 \cdot 1.
  • Por convenção, 0! = 1.
    Exemplo concreto: 4! = 4\cdot 3\cdot 2\cdot 1 = 24.
    Isso significa que, por exemplo, \frac{1}{4!} = \frac{1}{24}.

Passo 3

Reescrevendo a parte essencial em notação de soma para ficar mais clara: defina
S = \sum_{k=1}^{N} \frac{1}{k!} = \frac{1}{1!} + \frac{1}{2!} + \cdots + \frac{1}{N!}.
Então o valor pedido é
E = 1 + \frac{1}{S}.
Observação: para qualquer N\ge 1 temos S>0, logo a expressão \frac{1}{S} é bem definida.

Passo 4

Como calcular na prática (estratégia que dá certo em prova e em programa):
  • Calcular k! diretamente do zero em cada termo é custoso; em vez disso, mantenha uma variável que guarde o fatorial acumulado.
  • Comece com \text{fact} = 1. Para cada k de 1 até N faça \text{fact} \leftarrow \text{fact} \times k; então \text{fact} será exatamente k!. Some \frac{1}{\text{fact}} ao acumulador do somatório S.
  • Essa estratégia é O( N) em tempo e O(1) em memória e evita recalcular fatoriais do começo a cada iteração.

Passo 5

Explicando passo a passo o algoritmo que você vai implementar (pseudocódigo comentado):
  • Leia N (inteiro positivo).
  • Inicialize \text{fact} \leftarrow 1 (usar tipo ponto-flutuante para segurança) e \text{S} \leftarrow 0.
  • Para k de 1 até N:
    • \text{fact} \leftarrow \text{fact} \times k (agora \text{fact} = k!)
    • \text{S} \leftarrow \text{S} + 1/\text{fact}
  • Ao final calcule E \leftarrow 1 + 1/\text{S}.
  • Imprima E com precisão adequada (por exemplo, 6 casas decimais ou conforme exige o enunciado/avaliador).

Passo 6

Exemplo numérico para fixar:
  • Tome N=3.
  • Iterações:
    • k=1: \text{fact}=1, soma \text{S}=1/1=1.
    • k=2: \text{fact}=1\cdot 2=2, soma \text{S}=1 + 1/2 = 1{,}5.
    • k=3: \text{fact}=2\cdot 3=6, soma \text{S}=1{,}5 + 1/6 \approx 1{,}6666667.
  • Então E = 1 + 1/\text{S} \approx 1 + 1/1{,}6666667 \approx 1{,}6.
    Isso casa com o cálculo manual que fizemos antes — bom sinal.

Passo 7

Cuidados numéricos e limites práticos:
  • Para N muito grande, os termos \frac{1}{k!} tornam-se muito pequenos rapidamente (fatorial cresce rápido), então a soma converge; em ponto-flutuante, após certo k adicionar termos menores que a precisão não muda S. Normalmente, para N razoáveis (por ex. até algumas dezenas) a abordagem acima é segura.
  • Use tipo de ponto-flutuante (em Python: float; em C: double) para acumular \text{fact} e \text{S}.

Passo 8

Implementação (programa em Python). O programa lê um inteiro N da entrada padrão, calcula E seguindo o algoritmo explicado e imprime E com 6 casas decimais. Você pode adaptar o formato de saída se o enunciado pedir outra precisão.

Resposta

# Programa em Python para calcular E = 1 + 1/(1/1! + 1/2! + ... + 1/N!)
N = int(input().strip())
fact = 1.0
S = 0.0
for k in range(1, N+1):
    fact *= k            # fact passa a ser k!
    S += 1.0 / fact      # adiciona 1/k! ao somatório
E = 1.0 + 1.0 / S
print("{:.6f}".format(E))

Exercícios relacionados