Bom dia!
Essa é a minha solução principal para o problema da Cifra de César! Esse problema é clássico e bastante conhecido da galera que gosta de programar. Além disso, é um problema também conhecido por quem lida com criptografia e codificação. Vamos conferir a resposta? Ah, e se você tiver curiosidade, há outros posts sobre cifra de césar, onde resolvo em outras linguagens e de outras maneiras :)
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++
É feita a diferença entre cada letra e o deslocamento. Quando o resulto for menor do que 'A', então o if é responsável por recolocar a letra para o fim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> using namespace std; int main() { int n; cin >> n; while(n--){ string palavra; int deslocamento; cin >> palavra >> deslocamento; for(int i = 0; i<palavra.length(); i++){ char letra = palavra[i] - deslocamento; if(letra < 'A') letra = 'Z' - ('A' - letra) +1; palavra[i] = letra; } cout << palavra << endl; } return 0; } |
Nenhum comentário:
Postar um comentário