Pesquisar este blog

Livros Recomendados

domingo, 21 de março de 2021

URI (BEECROWD) - 2867 - Dígitos - Iniciante - C e C++

Quem aí gosta de matemática!? Embora seja de nível iniciante, esse exercício envolve matemática na sua solução. Pelo menos na forma que eu resolvi. Veja na sequência da postagem a solução para o problema "Dígitos", do URI/BEECROWD.

Plataforma: URI (BEECROWD)

Problema2867


Linguagens: C e C++


Solução:

Código em C:

Nessa solução, após ler a base e o expoente, a fórmula que resolve o problema é o cálculo do piso de expoente multiplicado pelo log10 da base. Depois disso soma-se 1. O piso é aquele "arredondamento" forçado para baixo, ou seja, 1.8 vira 1.0. Tanto as funções floor (piso) quanto log10 ficam na biblioteca math.

#include <stdio.h>
#include <math.h>

int main() {
    
    int n;
    double base, expoente;
    scanf("%d", &n);
    
    while (n--) {
        scanf("%lf %lf", &base, &expoente);
        printf("%.lf\n", floor(expoente * log10(base)) + 1);
    }

    return 0;
}

Código em C++:

O código em C++ faz exatamente a mesma coisa que o código C. Aqui a biblioteca é incluída com o nome cmath, mas é exatamente a mesma que usei em C.

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    
    long long int n, base, expoente;
    cin >> n;
    
    while (n--) {
        cin >> base >> expoente;
        cout << floor(expoente * log10(base)) + 1 << 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