Pesquisar este blog

Livros Recomendados

domingo, 28 de fevereiro de 2021

URI (BEECROWD) - 1984 - O Enigma do Pronalândia - Iniciante - C e C++

O Enigma da Pronolândia, problema iniciante resolvido! Aqui posto as soluções em C e C++ para esse problema. Compare com a(s) sua(s) respota(s) e comente se ficou igual ou parecido!!!

Plataforma: URI (BEECROWD)

Problema1984

Enunciado:

Os cientistas da NASA descobriram um novo exoplaneta que fica a 1 bilhão de anos luz da terra. O nome desse planeta foi batizado de Pronalândia em homenagem aos novos cientistas que estão sendo formados no PRONATEC. Só que o mais incrível ainda está por vir. Ao observar melhor o planeta eles conseguiram identificar que os habitantes da Pronalândia estavam querendo se comunicar por uma numeração. Só que a numeração que encontraram está invertida e como encontraram muitas delas chamaram você para conseguir automatizar esse processo. Logo, dado um número grande, sua tarefa é imprimir esse número invertido.

Linguagens: C e C++


Solução:

Neste exercício devemos imprimir o número invertido. Para isso é necessário que ele seja lido como uma cadeia de caracteres, senão o zero, ao ser posicionado como dígito maior, é eliminado (zero à esquerda). Assim, trabalhou-se então com cadeia de caracteres. O importante era saber quantos dígitos o número tinha, para então ler esse dado de trás pra frente, ou seja, do maior índice até o índice zero.

Código em C:

#include <stdio.h>

int main() {
    char *numero = (char *) malloc(sizeof(char) * 12);
    int tamanho = 0;
    long long int valor;
    
    scanf("%lld", &valor);
    sprintf(numero, "%lld", valor);
    
    while(numero[tamanho] != '\0')
        tamanho++;
    
    while(--tamanho >= 0)
        printf("%c", numero[tamanho]);
    
    printf("\n");

    return 0;
}

Código em C++:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string numero;
    int tamanho = 0;
    long long int valor;
    
    cin >> valor;
    numero = to_string(valor);
    
    while(numero[tamanho] != '\0')
        tamanho++;
    
    while(--tamanho >= 0) {
        cout << numero[tamanho];
    }
    
    cout << 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