Решение задачи Шифр Юлия с Mccme
С пояснением   Просмотров: 632
Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Необходимо по заданной шифровке определить исходный текст.
Пояснение к задаче
Пробегаемся циклом по длине строки. Для каждого символа строки может быть два варианта: 1) если нужно сдвинуть символ еще с конца алфавита (например, B при k=3 нужно двигать еще и от конца) 2) если нужно просто подвинуть символ. Зная, что сдвиг происходит влево (что видно на примере) и что большие латинские буквы в таблице символов ASCII находятся в диапазоне [65..90], сделаем следующее: 1) если код символа минус k больше либо равен 65 (ord(s[i])-k>=65 - то есть не надо двигать с конца), то выводим chr(ord(s[i])-k) (ф-ия chr возвращает символ по коду) 2) в остальных случаях заводим переменную (например, переменную o), в которой будем хранить ord(s[i])-65, а затем выведем на экран chr(90-(k-o)+1).