Problema: 1156
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