Hoje vamos resolver outro problema do URI/BEECROWD: "Errou!", da categoria Ad-Hoc, em C e C++.
Plataforma: URI (BEECROWD)
Problema: 2868
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; }
#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; }
Nenhum comentário:
Postar um comentário