Resolvi um exercício da categoria Strings no URI/BEECROWD! Ele se chama R+L=J. Achei bem fácil, veja abaixo como fiz em C e C++!
Plataforma: URI (BEECROWD)
Problema: 2557
Enunciado:
Durante sua grande aventura na Terra do Oeste, Joãozinho descobriu um livro sagrado que, segundo as lendas, foi escrito pelos próprios deuses antigos. Uma passagem em particular chamou a atenção do jovem aventureiro:
“A origem daquele que nada sabe se revelará quando aquele escolhido pelos deuses desvendar o enigma por eles lhe imposto. R+L=J.”
O enigma o intrigou bastante. Joãozinho logo começou a procurar por valores de R, L e J que satisfazem a equação citada na passagem. Após investigações, o jovem encontrou dois dos três valores citados. Joãozinho deve agora determinar o terceiro dos valores citados, para que o enigma seja solucionado e para que “a origem daquele que nada sabe” seja revelada.
Linguagens: C e C++
Solução:
Código em C:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char linha[50]; char *token; int v[3], r; while (fgets(linha, 50, stdin) != NULL) { r = 2; token = strtok(linha, "+"); if (token[0] != 'R') v[0] = atoi(token); else { v[0] = 0; r = 0; } token = strtok(NULL, "="); if (token[0] != 'L') v[1] = atoi(token); else { v[1] = 0; r = 1; } token = strtok(NULL, "\n"); if (token[0] != 'J') v[2] = atoi(token); else v[2] = 0; if (!r) printf("%d\n", v[2] - v[1]); else if (r == 1) printf("%d\n", v[2] - v[0]); else printf("%d\n", v[0] + v[1]); } return 0; }
Código em C++:
#include <iostream> using namespace std; int main() { string linha, token; int v0, v1, v2, r, pos; while (getline(cin, linha)) { r = 2; pos = linha.find("+"); token = linha.substr(0, pos); if (token[0] != 'R') v0 = stoi(token); else { v0 = 0; r = 0; } linha.erase(0, pos + 1); pos = linha.find("="); token = linha.substr(0, pos); if (token[0] != 'L') v1 = stoi(token); else { v1 = 0; r = 1; } linha.erase(0, pos + 1); pos = linha.find("\n"); token = linha.substr(0, pos); if (token[0] != 'J') v2 = stoi(token); else v2 = 0; if (!r) cout << v2 - v1 << endl; else if (r == 1) cout << v2 - v0 << endl; else cout << v0 + v1 << endl; } return 0; }
Nenhum comentário:
Postar um comentário