Pesquisar este blog

Livros Recomendados

sábado, 30 de janeiro de 2021

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

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:

#include <stdio.h>

int main() {
    int n, i = 0, j, chave, tamanho;
    char *palavra = (char *) malloc(sizeof(char) * 50);;
    char alfabeto[26][27] = {
        "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"
    };
    scanf("%d ", &n);
    
    while (i++ < n) {
        scanf("%s", palavra);
        scanf("%i", &chave);
        
        tamanho = 0;
        while (palavra[tamanho] != '\0')
            tamanho++;

        j = 0;            
        while (j < tamanho) {
            palavra[j] = alfabeto[chave][palavra[j] - 'A'];
            j++;
        }
        
        printf("%s\n", palavra);
    }
    
    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