Pesquisar este blog

Livros Recomendados

sexta-feira, 5 de março de 2021

URI (BEECROWD) - 2161 - Raiz Quadrada de 10 - Iniciante - C e C++

O exercício da raiz quadrada de 10 foi resolvido e postado aqui. Bom proveito!

Plataforma: URI (BEECROWD)

Problema2161

Enunciado:

Uma das formas de calcular a raiz quadrada de um número natural é pelo método das frações periódicas continuadas. Esse método usa como denominador uma repetição de frações. Essa repetição pode ser feita uma quantidade específica de vezes.

Por exemplo, ao repetir 2 vezes a fração continuada para calcular a raiz quadrada de 10, temos a fórmula abaixo (ver fórmula na especificação original do problema).

Sua tarefa é, dado o número N de repetições, calcular o valor aproximado da raiz quadrada de 10.


Linguagens: C e C++


Solução:

Basta calcular a raiz de n utilizando a formula abaixo recursivamente.

Código em C:

#include <stdio.h>

double raiz(int n) {
    
    if (n == 0) return 0;
    return 1 / (6 + raiz(n - 1));
    
}

int main() {
    
    int n;
    scanf("%i", &n);
    printf("%.10lf\n", 3 + raiz(n));

    return 0;
}

Código em C++:

Aqui utilizou-se, primeiramente, a biblioteca iomanip para usar a função setprecision, limitando as casas decimais em 10.

Seguindo a fórmula, criou-se a função raíz, que realiza todo cálculo da fórmula e, quando chamada, ao seu valor de retorno é adicionado o valor 3, para assim obter na totalidade o valor solicitado no exercício.

#include <iostream>
#include <iomanip>

double raiz(int n) {
    
    if (n == 0) return 0;
    return 1 / (6 + raiz(n - 1));
    
}

int main() {
    
    int n;
    std::cin>>n;
    std::cout<<std::fixed<<std::setprecision(10)<<3+raiz(n)<<std::endl;

    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