Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 46

Длинные строки

01.04.2014, 00:11. Показов 1635. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Строки (цепочки символов русских букв) создаются по следующему правилу. Первая строка состоит из одного символа — русской буквы «А». Каждая из последующих цепочек создается такими действиями: в очередную строку сначала записывается буква, чей порядковый номер в алфавите соответствует номеру строки (на “i”-м месте пишется “i“-я буква алфавита), к ней справа дважды подряд приписывается предыдущая строка.
Вот первые 5 строк, созданные по этому правилу:
A
БAA
ВБAAБAA
ГВБAAБAAВБAAБAA
ДГВБAAБAAВБAAБAAГВБAAБAAВБAAБAA
Русский алфавит: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.
Необходимо написать эффективную по памяти программу, которая бы выводила семь подряд идущих символов в k-ой строке с пятнадцатого по двадцать первое место (считая слева направо). Если некоторые их символов с пятнадцатого по двадцать первое место в k-ой строке отсутствуют, то вывести присутствующие из них. Если длина k-ой строки меньше 15, то в качестве ответа сформировать пустую строку.
Сколько раз встречается буква «А» в k-ой строке?
Исходные данные
Номер строки k, 1 ≤ k ≤ 33.
Результат
Искомая подстрока из семи символов. Во второй строке количество символов «А» в k-ой строке. Количество символов «А» можно представить в виде выражения, в виде числа в не 10-ой системе счисления и т.д.


JavaScript
1
2
3
4
5
6
7
8
9
10
function poisc() {
var str='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
var strp=''  
var k=prompt('Ведите номер строки', '');
for (var i=0; i<k; i++) { 
    var str1=str[i]+strp+strp;
    strp=str1;   
}
alert ('Результат'+'\n'+strp+'\n'+(strp.split('А').length-1));
}
как можно сделать еще, чтоб строку strp не хранить в памяти?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2014, 00:11
Ответы с готовыми решениями:

Длинные числа
Цепочки символов (строки) создаются по следующему правилу. Первая строка состоит из одного символа — цифры «1». Каждая из последующих...

Как обрезать длинные заголовки
Приветствую! есть такая задача, на странице выводятся заголовки бывает что очень длинные и они не помещаются на одной строке, нужно...

Переписать строки исходного файла в новый файл, укоротив, длинные строки до 20 символов
Переписать строки исходного файла в новый файл, укоротив, длинные строки до 20 символов

1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.04.2014, 11:44
JavaScript
1
2
3
4
5
6
7
8
9
10
(function ()
{
var k = prompt ('Ведите номер строки', ''),
    a = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'.split (''),
    s = a.slice (0, k).reverse ().join (''),
    m = k - 1;
while (m) {s += s.substr (m, m + 21 - s.length); m--; if (s.length > 20) break}
document.write ('<p>Искомая подстрока с <b>15</b>-го по <b>21</b>-й символ в ' + k + '</b>-й строке содержит \'<b style="color: red">' + s.substring (14, 21) + '</b>\'.');
document.write ('<p><b>' + k + '</b>-я строка содержит <b style="color: red">' + Math.pow (2, k - 1) + '</b> шт. букв <b>А</b>.');
}) ();
пояснение

-- в условии дан алгоритм формирования k-й строки, исходя из известной (k - 1) строки, т.е. с конца строки

-- но нас интересуют только первые 21 символ k-й строки, поэтому формируем алгоритм, зависящий только от k и позволяющий формировать k-ю строку с её начала

-- для этого рассмотрим состав, например, 4-й строки > "ГВБAAБAAВБAAБAA"

-- можно представить эту строку как объединение 4-х подстрок: "ГВБA" + "A" + "БAA" + "ВБAAБAA"

-- где первая подстрока - это 4-е первых букв алфавита, перевёрнутые наоборот > "ГВБA"

-- вторая подстрока - это последняя (4-я) буква первой подстроки "ГВБA" > "A"; объединяем 1-ю и 2-ю и получаем результат > "ГВБAА"

-- третья подстрока - это часть получившегося ранее результата "ГВБAА", начиная с 3-й буквы > " БAА"; объединяем и получаем результат > "ГВБAAБAA"

-- и, наконец, четвёртая подстрока - это часть последнего результата ВБAAБAA", начиная со 2-й его буквы > "ВБAAБAA"; объединяем и получаем исходную 4-ю строку > "ГВБAAБAAВБAAБAA"

-- проверяем этот алгоритм на 3-й и 5-й строке и тем подтверждаем его универсальность

-- так как нас интересуют только первые 21 символ, то как только общая длина строки превысит 20 символов, действия по нашему алгоритму прекращаем


что до количества букв "А" в строке - это общеизвестная задача "о зёрнах на шахматной доске"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2014, 11:44
Помогаю со студенческими работами здесь

Длинные строки не влазят
Доброго времени суток.Суть проблемы: при разных разрешениях длинные строки не вмещаются и внутренний блок контента съезжает под другой...

Длинные строки в DataGridView
Как сделать, чтобы если строка длинная и в ячейке не помещается, она переносилась на новую. В смысле, не создавалась новая строка грида, а...

PSQLException, длинные строки
У меня вылезает ошибка, что org.postgresql.util.PSQLException: ERROR: value too long for type character varying(255). Что можно сделать,...

Как переносить длинные строки?
eprst=input('Вы хотите вычислить только боковую поверхность или всю площадь цилиндра? Введите 1, если хотите вычислить всю площадь цилиндра...

Слишком длинные строки в таблице
Всем привет! Столкнулась с вот такой проблемой. DBGrid1 - таблица заполняемая запросом ADOQuery1. Табличка вставляется из Access, но строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru