Ir ao conteúdo

C E = 1 + 1 / 1! + 1 / 2! + 1 / 3! + ... + 1 / (k-1)! + 1 / k!


Posts recomendados

Postado

Para resolver este exercício, siga os passos abaixo:

    E = 1 + 1 / 1! + 1 / 2! + 1 / 3! + ... + 1 / (k-1)! + 1 / k!

 

1. A função deve receber um valor real x e calcule o valor de E. x representa o valor máximo (tolerância) para a diferença entre dois termos consecutivos. Isto é, o cálculo do valor de E deve ser computado até que |1/k! – 1/(k+1)! | < x . Imprima cada termo gerado e o resultado de E ao final.

2. Escreva uma função principal (main) que leia um valor real x e chame a função desenvolvida no item anterior. 

 

ex: 0.5

      1 + 1/1! + 1/2! = 2.500

 

Não faço ideia de como devo fazer o fatorial de um número decimal e de como colocar a conta (1 +1/1! + 1/2!  = ) junto com a resposta para cada tipo de exemplo. Tudo que eu consegui foi isso aqui:

 

int main(){ 
    
    float soma = 0, fat = 0, num;    
    int i;    
    
    scanf("%F", &num);
    
        for(i = 0; i < num; i++){        
            fat = fat * i;        
            soma = soma + (1 / fat);    
            
        } 
        
        printf("E = %.3f", soma);
        
        return soma;
}

 

Postado

@immoraesz O loop não vai até num. A entrada é o limite que será usando no teste da diferença entre os termos consecutivos: |1/k! – 1/(k+1)! | < x. Seu loop vai rodar até chegar nesse critério.

  

13 horas atrás, immoraesz disse:

Não faço ideia de como devo fazer o fatorial de um número decimal

O fatorial vai ser de um número inteiro, o termo que será decimal.

 

Para pegar um termo calcule como pedido e pegue o próximo da mesma forma, mas após o novo fatorial, algo assim,

do{
    double termo = 1.0/fat;
    fat *= i;
    double proximo = 1.0/fat;
    diferenca = termo - proximo;
    E += proximo;
    i += 1;
}while(i <= 2 || diferenca > x);

 

Antes de entrar no loop você pode testar se x é maior que 0.5 e já retornar 2.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...