Задание
Багги мнит себя Гаем Юлием Цезарем и любит громогласно его цитировать при каждом удобном случае, выдавая мысли Цезаря за свои. Проги пошутил над Багги и зашифровал в стиле Цезаря список цитат, которыми пользуется Багги. Багги в панике. Если хотите, помогите ему расшифровать известную цитату :
UDMHUHCHUHBH
Напишите программу, которая для вышеприведенного шифртекста выводит соответствующий открытый текст.
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <string> using namespace std; int main() { string str; cin >> str; for(int i = 0 ; i < str.length(); i++){ if(str[i] == 'Z') str[i] = 'A'; else str[i]++; } cout << str; return 0; } |
Решение
Шифр Цезаря так же известен как шифр сдвига. Каждая буква сдвигается в алфавите на константу влево или вправо по модулю длины алфавита . В нашем случае зашифрованное и расшифрованное сообщение будет состоять только из букв (в условии не сказано ничего про сам алфавит).
Ниже пример шифрования методом сдвига (в данном случае на 3 единицы вправо)
A заменяется на D
B заменяется на E
и так далее
Z заменяется на C
Пришёл, увидел, победил!Veni, vidi, vici!