Olá!
O problema resolvido hoje é o da Cifra de César. Dessa vez, mais uma solução alternativa! Aqui contendo todos os alfabetos possiveis a serem considerados na resposta, que são 26.
Essa tabela de alfabetos que mencionei (e você verá abaixo, na minha solução) é conhecida em criptografia como "tabula recta". Sabia disso?
Eu gosto de resolver problemas assim, e você? Conte nos comentários!
Plataforma: URI (BEECROWD)
Problema: 1253
Enunciado:
Júlio César usava um sistema de criptografia, agora conhecido como Cifra de César, que trocava cada letra pelo equivalente em duas posições à Esquerda no alfabeto (por exemplo, 'C' vira 'A', 'T' vira 'R', etc.). Ao começo do alfabeto nós voltamos para o fim, isto é 'A' vira 'Y'. Nós podemos, é claro, tentar trocar as letras com quaisquer número de posições.
Linguagem: C++
Solução:
#include <iostream> #include <cmath> using namespace std; int main() { int n, i = 0, j, chave, tamanho; string palavra; string alfabeto[26] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZABCDEFGHIJKLMNOPQRSTUVWXY", "XZABCDEFGHIJKLMNOPQRSTUVWX", "XYZABCDEFGHIJKLMNOPQRSTUVW", "WXYZABCDEFGHIJKLMNOPQRSTUV", "VWXYZABCDEFGHIJKLMNOPQRSTU", "UVWXYZABCDEFGHIJKLMNOPQRST", "TUVWXYZABCDEFGHIJKLMNOPQRS", "STUVWXYZABCDEFGHIJKLMNOPQR", "RSTUVWXYZABCDEFGHIJKLMNOPQ", "QRSTUVWXYZABCDEFGHIJKLMNOP", "PQRSTUVWXYZABCDEFGHIJKLMNO", "OPQRSTUVWXYZABCDEFGHIJKLMN", "NOPQRSTUVWXYZABCDEFGHIJKLM", "MNOPQRSTUVWXYZABCDEFGHIJKL", "LMNOPQRSTUVWXYZABCDEFGHIJK", "KLMNOPQRSTUVWXYZABCDEFGHIJ", "JKLMNOPQRSTUVWXYZABCDEFGHI", "IJKLMNOPQRSTUVWXYZABCDEFGH", "HIJKLMNOPQRSTUVWXYZABCDEFG", "GHIJKLMNOPQRSTUVWXYZABCDEF", "FGHIJKLMNOPQRSTUVWXYZABCDE", "EFGHIJKLMNOPQRSTUVWXYZABCD", "DEFGHIJKLMNOPQRSTUVWXYZABC", "CDEFGHIJKLMNOPQRSTUVWXYZAB", "BCDEFGHIJKLMNOPQRSTUVWXYZA" }; cin >> n; cin.ignore(); while (i++ < n) { getline(cin, palavra); cin >> chave; cin.ignore(); tamanho = 0; while (palavra[tamanho] != '\0') tamanho++; j = 0; while (j < tamanho) { palavra[j] = alfabeto[chave][palavra[j] - 'A']; j++; } cout << palavra << endl; } return 0; }
Nenhum comentário:
Postar um comentário