Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 2867. Mostrar todas as postagens
Mostrando postagens com marcador 2867. Mostrar todas as postagens

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;
}

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