Pesquisar este blog

Livros Recomendados

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

domingo, 21 de março de 2021

URI (BEECROWD) - 2868 - Errrou! - Ad-Hoc - C e C++

Hoje vamos resolver outro problema do URI/BEECROWD: "Errou!", da categoria Ad-Hoc, em C e C++.

Plataforma: URI (BEECROWD)

Problema2868

Linguagens: C e C++

Solução:

A lógica utilizada em C e C++ foi a mesma, confira na sequência. Uma opção minha nessa solução não foi de montar a string completa para depois imprimir, pois ela segue sempre o mesmo comportamento: imprime o "E", depois quantos "r" forem necessários e depois "ou!". Nesse caso, fixei os comandos de escrita e somente a escrita do "r" eu coloquei em um laço de repetição. Conseguiu compreender a solução? Conta aí pra nós!

Código em C:

#include <stdio.h>

int main() {
    int c, n1, n2, resLida, resReal, quantR;
    char op, ig;
    scanf("%i", &c);
    
    while (c--) {
        scanf("%i %c %i %c %i", &n1, &op, &n2, &ig, &resLida);
        
        switch (op) {
            case '+':
                resReal = n1 + n2;
                break;
            case '-':
                resReal = n1 - n2;
                break;
            default:
                resReal = n1 * n2;
                break;
        }
        
        quantR = (resReal>resLida? resReal-resLida : resLida-resReal);
        
        printf("E");
        
        for (i  = 0; i < quantR; i++)
            printf("r");
            
        printf("ou!\n");
         
    }

    return 0;
}

Código em C++:

#include <iostream>

using namespace std;

int main()
{
    int c, n1, n2, resLida, resReal, quantR;
    char op, ig;
    cin >> c;
    
    while (c--) {
        cin >> n1 >> op >> n2 >> ig >> resLida;
        
        switch (op) {
            case '+':
                resReal = n1 + n2;
                break;
            case '-':
                resReal = n1 - n2;
                break;
            default:
                resReal = n1 * n2;
                break;
        }
        
        quantR = (resReal>resLida? resReal-resLida : resLida-resReal);
        
        cout << "E";
        
        for (int i  = 0; i < quantR; i++)
            cout << "r";
            
        cout << "ou!" << 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