URI Online Judge | 1253
Cifra de César
By TopCoder*
USA
Timelimit: 1
USA
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 à direita no alfabeto (por exemplo, 'A' vira 'C', 'R' vira 'T', etc.). Ao fim do alfabeto nós voltamos para o começo, isto é 'Y' vira 'A'. Nós podemos, é claro, tentar trocar as letras com quaisquer número de posições.
Entrada
A entrada contém vários casos de teste. A primeira linha de entrada contém um inteiro N que indica a quantidade de casos de teste. Cada caso de teste é composto por duas linhas. A primeira linha contém uma string com até 50 caracteres maiúsculos ('A'-'Z'), que é a sentença após ela ter sido codificada através desta Cifra de César modificada. A segunda linha contém um número que varia de 0 a 25 e que representa quantas posições cada letra foi deslocada para a direita.
Saída
Para cada caso de teste de entrada, imprima uma linha de saída com o texto decodificado (transformado novamente para o texto original) conforme as regras acima e o exemplo abaixo.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
int n,s,x,y,tam;
char p[51];
scanf("%d",&n);
for(x=0;x<n;x++){
scanf("%s",p);
scanf(" %d",&s);
for(y=0,tam=strlen(p);y<tam;y++){
toupper(p[y]);
if(p[y]-s<65){
p[y]=p[y]+26;
}
p[y]=p[y]-s;
printf("%c",p[y]);
}
printf("\n");
}
return 0;
}
Nenhum comentário:
Postar um comentário