Pesquisar este blog

Livros Recomendados

segunda-feira, 30 de março de 2020

URI - 1156 - Sequência S II - Iniciante - C

Plataforma: URI
Problema1156

Enunciado:
Escreva um algoritmo para calcular e escrever o valor de S, sendo S dado pela fórmula:
S = 1 + 3/2 + 5/4 + 7/8 + ... + 39/?

Linguagem: C

Solução:
Este exercício pede o cálculo de uma série. Para a resolução dele sugere-se criar uma estrutura de repetição que identifique quem será o termo, qual é a relação dele com o termo anterior e acumular o resultado da operação. Nota-se que cada termo, com exceção do primeiro, contém o numerador igual ao anterior acrescido de 2. Assim, conseguimos saber que a série tem 20 termos. O denominador é sempre o dobro do anterior: 1 (não aparece, mas sabemos que 1/1 = 1), 2, 4, 8...
O primeiro termo é o valor 1, por isso "s" já vale 1. A variável "n" representa o numerador.
Ao imprimir o resultado é necessário utilizar .2lf para evitar erros de representação com a precisão do número decimal e delimitar as casas decimais em duas.

#include <stdio.h>
int main() {
    int i = 1;
    double s = 1.0;
    double n = 3.0;
    double d = 2.0;
    
    while (i++ < 19) {
        s += n/d;
        n += 2;
        d += d;
    }
    
    printf("%.2lf\n",s);
    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas