Рассказ, набранный на компьютере, содержит 128 страниц текста. на каждой странице 24 строки, в каждой строке 16 символов. определите, сколько килобайт занимает весь рассказ.
Объясняю свой алгоритм решения данного задания. Берём и запихиваем все строки в двумерный чар массив. Потом построчно сравниваем i-j элемент столбца с i+1-j. Если это одинаковые символы - мы прибавляем к счётчику +1. Потом сравниваем i-j+1 и i+1-j+1, если они равны, то мы прибавляем +1 при условии того, что один из этих элементов равен одному из предыдущих Ну а потом если наш счётчик составляет 2 - мы уже знаем что этот узор не симпатичный. В противном же случае мы идём дальше до size-1. (в нашем случае size=4 поэтому 4-1=3) Скриншот с результатом работы, скоростью и самим кодом прикрепил. UPD: Ещё можешь уменьшить кол-во итераций, во втором цикле в условии можно сделать strlen(a[i])-1
1) В кодировке КОИ-8 каждый символ кодируется 8-мью битами (1 байтом, т.к 8 бит = 1 байт). Нам требуется перевести 170 КБ в байты ( для упрощения вычислений) = 170 * 1024 = 174 080 байт. После чего находим находим колл-во символов. Делается это очень просто. Нам всего-то нужно разделить объем сообщения на глибину кодировки. Вычисления: 174 080 / 1 = 174 080 символов (почему мы делили на 1? На этот вопрос имеется соотвествующий ответ. При вычислениях, категорически нельзя вычислять разные величины, именно поэтому мы перевели 8 битов в 1 байт)
ответ: 174080 символов
2) В данном задании нам требуется найти общее колл-во символов. Находится это непосредственно делением объема информации на кодировку. Кодировка Unicode кодирует каждый символ 16-ю битами. Вычисления: 72 000 / 2 (перевели биты в байты) = 36 000 символов. После чего найдем общее число строк: 4 * 40 = 160 строк. В условии задачи сказано найти сколько символов использовалось для составления каждой строки. Для этого делим колл-во символов на колл-во строк: 36 000 / 160 = 225 символов.
ответ: 225 символов.
3) Вычислим сколько всего введет секретарь символов за 40 минут : За 1 минуту : 32 * 2 = 64 символа. За 40 минут : 40 * 64 = 2560 символов. Далее нам требуется опеределить сколькими битами кодируется каждый символ. Для этого существует определенная формула N = 2^{I}. Из этого следует то что N = 2^{8}, а это в свою очередь означает что I = 8 бит. У нас есть все что нам нужно: Колл-во символов и глубина кодировки. Действуем! Для того чтобы вычислить колл-во информации нам потребуется умножить колл-во символов на глубину кодировки. Вычисления: 2560 * 8 = ((20 480/8)/1024) = 2.5 КБ
128 * 24 * 16 = 98304 символов
Эт короче в юником системе в 1 символе 2 байта
Итого 98304 * 2 = 196608 байт
196608 / 1024 = 192 КБайт