Шифрования, который часто используют начинающие криптографы, заклю- чается в том, что шифруемое слово записывается некоторым достаточно хитрым образом в клетках
квадрата. Одним из таких, не очень удачных шифров, является шифр "Змейка".
Он применяется для шифрования слов длины n^2 (если длины слова меньше, оно дополняется
точками). Слово разбивается на части длиной по n символов каждая. Далее эти части записыва-
ются в квадрат размером n на n (каждая часть в отдельную строку), при этом части с четными
номерами записываются задом наперед. Например, слово Iloveyou., полученное из фразы I love
you. удалением пробелов, будет закодировано следующим образом.
Оно будет разбито на три части: Ilo, vey, ou.. Эти части далее будут записаны в квадрат так:
Можно видеть, что шифруемое слово записано в этом квадрате "змейкой".
Задан квадрат, получившийся в результате шифрования некоторого слова описанным
Необходимо выяснить, содержится ли в исходном слове подстрока t.
Формат ввода:
Первая строка входного файла содержит целое число n (1 <= n <= 50). Последующие n строк
содержат каждая по n символов - строки квадрата, начиная с первой. Последняя строка входного
файла содержит искомую непустую строку t, длина которой не превышает 1000 символов. Квадрат
и строка t состоят только из строчных букв латинского алфавита и точек.
Формат вывода:
В выходной файл выведите слово YES, если строка t содержится в зашифрованной строке, и
слово NO - в противном случае.
Пример ввода: Пример вывода:
3
Ilo
yev
ou.
you
YES
3
Ilo
yev
ou.
me
NO
Ответы на вопрос:
1. чтобы перевести тз любой позиционной сс в десятичную:
1) запишите число
2) сверху, над каждой цифрой напишите число от 0 и до скольки получится, считая справа налево от запятой
3) так же степени раставьте после запятой, только числа используйте отрицательные(-1, - и пишите их слева направо
4) запишите число в развернутом виде с учетом записанных степеней: пишем цифру и умножаем на основание сс в степени,записанной над данной цифрой
5) считаем
5 4 3 2 1 0 -1-2
1 1 0 1 1 0 , 0 1 = 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 0*2^-1 + 1*2^-2 = 32+16+0+4+2+0+0+0.25 = 54.25
что бы из двоичной системы перевести сразу в восьмиричную, необходимо разбить число на тройки и в каждой тройке посчитать полученное число(как в десятичной системе):
110 110 , 01 = 66,25
чтобы перевести сразу в шестнидцатеричную, необходимо проделать тоже самое, только разбить на 4:
0011 0110 , 01 = 36,25
2. что бы перевести число из десятичной сс в любую другую, надо данное число разделить на основение требуемой системы нацело. если остается остаток, то его записать. и продолжать так делить до тех пор, пока часное не перестанет делитсчя нацело. после чего записываем последнее часное и все остатки в обратном направлении.
139| 2
138 69| 2
1 68 34| 2
1 34 17| 2
0 16 8| 2
0 8 4| 2
0 4 2| 2
0 2 1
0
139 = 10000011
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
260г15.03.2022 01:30
-
tanya59619.01.2023 04:01
-
annafycguvvv10.02.2021 01:58
-
Софья360130.01.2023 12:49
-
misskuleshova04.11.2021 20:07
-
DIlyus14.04.2020 12:46
-
pennycat21.05.2020 08:29
-
hhhttt152008.08.2022 03:09
-
NordTactick25.04.2023 21:56
-
dostovalovaanast21.11.2020 14:14
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.