Pesquisar este blog

Livros Recomendados

quarta-feira, 12 de agosto de 2020

URI (BEECROWD) - 1253 - Cifra de César - Strings - C++

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 :)

Plataforma: URI (BEECROWD)
Problema1253

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:
É 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

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