e-olymp 2164. Шифр Юлия

Задача

Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через k позиций по кругу. Необходимо по заданной шифровке определить исходный текст.

Входные данные

В первой строке дана шифровка, состоящая из не более чем 255 заглавных латинских букв. Во второй строке число k(1k10).

Выходные данные

Вывести результат расшифровки.

Тесты

Входные данные Выходные данные
XPSE1 WORD
ZABC3 WXYZ
WURYAD4 SQNUWZ

Код программы

Решение

Для решения задачи вводим строки str и str1 и преобразуем их в массив символов (char). Чтобы расшифровать слово, находящееся в строке
s, необходимо заменить каждую букву данной строки на букву, находящуюся на (findk) позиции строки s1, где s1 — строка, содержащая латинский алфавит, а find — позиция заменяемой буквы в алфавите. В случае если разница find и k меньше нуля, заменяем букву строки s на букву, находящуюся на (26(kfind)) позиции строки s1, то есть, не считая то количество позиций, которые уже были пройдены от изначального символа до первого символа строки s1. Можно не беспокоиться о том, что символ вернется к концу алфавита более, чем один раз так как условие исключает этот вариант (k10 при 26-ти символах латинского алфавита).

Ссылки

Условие задачи на e-olymp

Код решения задачи ideone

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *