Тема 12. Алгоритмы – анализ сложных алгоритмов

12.02 Исполнитель «Редактор» – строка с произвольным порядком цифр

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – анализ сложных алгоритмов
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#6298

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*5) ИЛИ нашлось (*9)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*5)

ТО заменить (*5, 6*)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*9)

ТО заменить (*9, 7*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 100 цифр 2, 10 цифр 5 и 60 цифр 9, расположенных в произвольном порядке. Определите, каких цифр больше всего в строке, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2 и 60 цифр 3, то верным ответом было бы число 3.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 2, она не выводится, т.е. каждая двойка изначальной строки удаляется, после чего в конечной строке не будет ни одной двойки. Проходя через фильтр, пятерки и девятки заменяются на шестерки и семерки соответственно.

Исходя из этого, после выполнения программы в строке будут находиться 10 шестерок и 60 семерок, семерок больше, поэтому 7 - правильный ответ.

Ответ: 7

Ошибка.
Попробуйте повторить позже

Задача 2#6299

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*5) ИЛИ нашлось (*9)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*5)

ТО заменить (*5, 6*)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*9)

ТО заменить (*9, 7*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 30 цифр 2, 63 цифры 5 и 36 цифр 9, расположенных в произвольном порядке. Определите, каких цифр больше всего в строке, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2 и 60 цифр 3, то верным ответом было бы число 3.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 2, она не выводится, т.е. каждая двойка изначальной строки удаляется, после чего в конечной строке не будет ни одной двойки. Проходя через фильтр, пятерки и девятки заменяются на шестерки и семерки соответственно.

Исходя из этого, после выполнения программы в строке будут находиться 63 шестерки и 36 семерок. Шестерок больше всего, значит ответ 6.

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 3#6300

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*1) ИЛИ нашлось (*5) ИЛИ нашлось (*3)

ЕСЛИ нашлось (*1)

ТО заменить (*1, *353)

ИНАЧЕ ЕСЛИ нашлось (*5)

ТО заменить (*5, *)

ИНАЧЕ ЕСЛИ нашлось (*3)

ТО заменить (*3, 4*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 89 цифр 1, 25 цифр 5 и 74 цифры 3, расположенных в произвольном порядке. Определите количество цифр в строке, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 50.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 5, она не выводится, т.е. каждая пятерка изначальной строки удаляется, после чего в конечной строке не будет ни одной пятерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая единица преобразуется в две четверки, каждая тройка - в одну четверку. В результате конечная строка будет состоять лишь из одних четверок.

Исходя из этого, программа преобразует 89 единиц в 178 четверок, 74 тройки в 74 четверки, все пятерки будут удалены. Всего четверок 252.

Ответ: 252

Ошибка.
Попробуйте повторить позже

Задача 4#6301

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*1) ИЛИ нашлось (*5) ИЛИ нашлось (*3)

ЕСЛИ нашлось (*1)

ТО заменить (*1, *353)

ИНАЧЕ ЕСЛИ нашлось (*5)

ТО заменить (*5, *)

ИНАЧЕ ЕСЛИ нашлось (*3)

ТО заменить (*3, 4*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 92 цифр 1, 71 цифр 5 и 87 цифры 3, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 5, она не выводится, т.е. каждая пятерка изначальной строки удаляется, после чего в конечной строке не будет ни одной пятерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая единица преобразуется в две четверки, каждая тройка - в одну четверку. В результате конечная строка будет состоять лишь из одних четверок.

Исходя из этого, программа преобразует 92 единицы в 184 четверки, 87 троек в 87 четверок, все пятерки будут удалены. Всего четверок 271, их сумма равна 4 ⋅ 271 = 1084.

Ответ: 1084

Ошибка.
Попробуйте повторить позже

Задача 5#6336

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*78)

ТО заменить(*78, 4*)

ИНАЧЕ ЕСЛИ нашлось(*7)

ТО заменить(*7, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*8)

ТО заменить(*8, 8*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 7 восьмерок и неизвестное количество семерок. Расположение цифр может быть любым. Определите наименьшее количество семерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 40.

Показать ответ и решение

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

Чтобы минимизировать количество семерок определим следующее: в числе 40 содержится 5 восьмерок, однако программа не позволяет взять 5 восьмерок и не использовать остальные.

Очевидно, что восьмерки, перед которыми находится семерка, уменьшаются программой в два раза, значит можно подбором найти такое количество k  и n,  при котором 8 ⋅ k + 4 ⋅ n = 40.  Эти k  и    n  равны 3 и 4 соответственно. Следовательно, чтобы получить число 40, нужно задействовать 4 семерки и поставить их перед восьмерками.

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 6#7442

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*5) ИЛИ нашлось (*9)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*5)

ТО заменить (*5, 6*)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*9)

ТО заменить (*9, 7*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 100 цифр 2, 10 цифр 5 и 60 цифр 9, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 2, она не выводится, т.е. каждая двойка изначальной строки удаляется, после чего в конечной строке не будет ни одной двойки. Проходя через фильтр, пятерки и девятки заменяются на шестерки и семерки соответственно.

Исходя из этого, после выполнения программы в строке будут находиться 10 шестерок и 60 семерок. Сумма числовых значений равна 10 ⋅ 6 + 60 ⋅ 7 = 480.

Ответ: 480

Ошибка.
Попробуйте повторить позже

Задача 7#7443

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*5) ИЛИ нашлось (*9)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*5)

ТО заменить (*5, 6*)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (*9)

ТО заменить (*9, 7*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 30 цифр 2, 63 цифры 5 и 36 цифр 9, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 2, она не выводится, т.е. каждая двойка изначальной строки удаляется, после чего в конечной строке не будет ни одной двойки. Проходя через фильтр, пятерки и девятки заменяются на шестерки и семерки соответственно.

Исходя из этого, после выполнения программы в строке будут находиться 63 шестерки и 36 семерок. Сумма числовых значений равна 6 ⋅ 63 + 7 ⋅ 36 = 630.

Ответ: 630

Ошибка.
Попробуйте повторить позже

Задача 8#7444

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*6) ИЛИ нашлось (*7)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *767)

ИНАЧЕ ЕСЛИ нашлось (*6)

ТО заменить (*6, *)

ИНАЧЕ ЕСЛИ нашлось (*7)

ТО заменить (*7, 3*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 20 цифр 2, 100 цифр 6 и 42 цифры 7, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 6, она не выводится, т.е. каждая шестерка изначальной строки удаляется, после чего в конечной строке не будет ни одной шестерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая двойка преобразуется в две тройки, каждая семерка - в одну тройку. В результате конечная строка будет состоять лишь из одних троек.

Исходя из этого, программа преобразует 20 двоек в 40 троек, 42 семерки в 42 тройки, все шестерки будут удалены. Всего троек 82, их сумма равна 3 ⋅ 82 = 246.

Ответ: 246

Ошибка.
Попробуйте повторить позже

Задача 9#7445

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*2) ИЛИ нашлось (*6) ИЛИ нашлось (*7)

ЕСЛИ нашлось (*2)

ТО заменить (*2, *767)

ИНАЧЕ ЕСЛИ нашлось (*6)

ТО заменить (*6, *)

ИНАЧЕ ЕСЛИ нашлось (*7)

ТО заменить (*7, 3*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 35 цифр 2, 19 цифр 6 и 30 цифр 7, расположенных в произвольном порядке. Определите количество цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 50.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 6, она не выводится, т.е. каждая шестерка изначальной строки удаляется, после чего в конечной строке не будет ни одной шестерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая двойка преобразуется в две тройки, каждая семерка - в одну тройку. В результате конечная строка будет состоять лишь из одних троек.

Исходя из этого, программа преобразует 35 двоек в 70 троек, 30 семерок в 30 троек, все шестерки будут удалены. Всего троек 100, это и есть ответ.

Ответ: 100

Ошибка.
Попробуйте повторить позже

Задача 10#7446

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*1) ИЛИ нашлось (*5) ИЛИ нашлось (*3)

ЕСЛИ нашлось (*1)

ТО заменить (*1, *353)

ИНАЧЕ ЕСЛИ нашлось (*5)

ТО заменить (*5, *)

ИНАЧЕ ЕСЛИ нашлось (*3)

ТО заменить (*3, 4*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 89 цифр 1, 25 цифр 5 и 74 цифры 3, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 5, она не выводится, т.е. каждая пятерка изначальной строки удаляется, после чего в конечной строке не будет ни одной пятерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая единица преобразуется в две четверки, каждая тройка - в одну четверку. В результате конечная строка будет состоять лишь из одних четверок.

Исходя из этого, программа преобразует 89 единиц в 178 четверок, 74 тройки в 74 четверки, все пятерки будут удалены. Всего четверок 252, их сумма равна 4 ⋅ 252 = 1008.

Ответ: 1008

Ошибка.
Попробуйте повторить позже

Задача 11#7447

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось (*1) ИЛИ нашлось (*5) ИЛИ нашлось (*3)

ЕСЛИ нашлось (*1)

ТО заменить (*1, *353)

ИНАЧЕ ЕСЛИ нашлось (*5)

ТО заменить (*5, *)

ИНАЧЕ ЕСЛИ нашлось (*3)

ТО заменить (*3, 4*)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа “*”, а затем содержащая 92 цифр 1, 71 цифр 5 и 87 цифры 3, расположенных в произвольном порядке. Сколько цифр будет в строке, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 50.

Показать ответ и решение

Принцип действия данной программы можно воспринимать как фильтр, через который по очереди пропускаются одни числа, а выводятся другие (или не выводятся вообще). Этим фильтром служит знак “*”. При пропускании через фильтр цифры 5, она не выводится, т.е. каждая пятерка изначальной строки удаляется, после чего в конечной строке не будет ни одной пятерки.

Если проанализировать сам алгоритм программы, то можно понять, что каждая единица преобразуется в две четверки, каждая тройка - в одну четверку. В результате конечная строка будет состоять лишь из одних четверок.

Исходя из этого, программа преобразует 92 единицы в 184 четверки, 87 троек в 87 четверок, все пятерки будут удалены. Всего четверок 271.

Ответ: 271

Ошибка.
Попробуйте повторить позже

Задача 12#7517

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*3) или нашлось(*2)

ЕСЛИ нашлось(*23)

ТО заменить(*23, 5*)

ИНАЧЕ ЕСЛИ нашлось(*2)

ТО заменить(*2, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*3)

ТО заменить(*3, 3*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 10 троек и неизвестное количество двоек. Расположение цифр может быть любым. Определите наименьшее количество двоек, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 40.

Показать ответ и решение

Программа заменяет двойки, за которыми находится тройка на пятерки. Если же за двойкой находится другая двойка, то левая двойка заменяется нулем. Свободные тройки не затрагиваются действиями программы. Чтобы минимизировать количество двоек нужно найти количество свободных троек, сумма которых будет кратна 5.

Допустим, это 5 троек. Таким образом, необходимо количество двоек, которые в паре с остальными 5 тройками преобразуются в пятерки. Этих пятерок будет 5. Условие суммы цифр, равных 40 выполнено, но проверены не все варианты.

Допустим, нужно взять 10 троек. Несмотря на то что это число кратно 5, больше не осталось возможности получить пятерки. Но условие суммы цифр, равных 40 не выполнено, значит этот вариант не подходит, а 5 двоек - правильный ответ.

Ответ: 5

Ошибка.
Попробуйте повторить позже

Задача 13#7518

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*3) или нашлось(*2)

ЕСЛИ нашлось(*23)

ТО заменить(*23, 5*)

ИНАЧЕ ЕСЛИ нашлось(*2)

ТО заменить(*2, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*3)

ТО заменить(*3, 3*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 10 троек и неизвестное количество двоек. Расположение цифр может быть любым. Определите наименьшее количество двоек, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 50.

Показать ответ и решение

Программа заменяет двойки, за которыми находится тройка на пятерки. Если же за двойкой находится другая двойка, то левая двойка заменяется нулем. Свободные тройки не затрагиваются действиями программы. Чтобы минимизировать количество двоек нужно найти количество свободных троек, сумма которых будет кратна 5.

Допустим, это 5 свободных троек. Таким образом, необходимо количество двоек, которые в паре с остальными 5 тройками преобразуются в пятерки. Этих пятерок будет 5. Но условие суммы цифр, равных 50 не выполнено.

Больше 5 свободных троек брать смысла нет, т.к. если и 5 троек не допускает выполнение условия, то больше тем более, поскольку троек всего 10, а ровно 50 сложением троек получить не удастся.

Тогда возьмем 10 троек, находящихся в паре с двойками. В результате выполнения программы появится 10 пятерок, а значит условие суммы цифр будет выполнено.

Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 14#7519

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*1) или нашлось(*5)

ЕСЛИ нашлось(*51)

ТО заменить(*51, 9*)

ИНАЧЕ ЕСЛИ нашлось(*5)

ТО заменить(*5, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*1)

ТО заменить(*1, 1*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 5 единиц и неизвестное количество пятерок. Расположение цифр может быть любым. Определите наименьшее количество пятерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 29.

Показать ответ и решение

Программа заменяет пятерки, за которыми находится единица на девятки. Если же за пятеркой находится другая пятерка, то левая пятерка заменяется нулем. Свободные единицы не затрагиваются действиями программы. Чтобы минимизировать количество пятерок нужно найти ближайшее к 29 число кратное 9, которое можно дополнить до 29 оставшимися свободными единицами.

Единственное такое число - это 27. Для его получения нужны 3 пятерки, которые будут стоять перед единицами, а также 2 свободные единицы. Таким образом, наименьшее количество пятерок – это 3.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 15#7520

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*1) или нашлось(*5)

ЕСЛИ нашлось(*51)

ТО заменить(*51, 9*)

ИНАЧЕ ЕСЛИ нашлось(*5)

ТО заменить(*5, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*1)

ТО заменить(*1, 1*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 10 единиц и неизвестное количество пятерок. Расположение цифр может быть любым. Определите наименьшее количество пятерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 82.

Показать ответ и решение

Программа заменяет пятерки, за которыми находится единица на девятки. Если же за пятеркой находится другая пятерка, то левая пятерка заменяется нулем. Свободные единицы не затрагиваются действиями программы. Чтобы минимизировать количество пятерок нужно найти ближайшее к 82 число кратное 9, которое можно дополнить до 82 оставшимися свободными единицами.

Единственное такое число - это 81. Для его получения нужно 9 пятерок, которые будут стоять перед единицами, а также 1 свободная единица. Таким образом, наименьшее количество пятерок – это 9.

Ответ: 9

Ошибка.
Попробуйте повторить позже

Задача 16#7521

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*1) или нашлось(*5)

ЕСЛИ нашлось(*51)

ТО заменить(*51, 9*)

ИНАЧЕ ЕСЛИ нашлось(*5)

ТО заменить(*5, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*1)

ТО заменить(*1, 1*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 7 единиц и неизвестное количество пятерок. Расположение цифр может быть любым. Определите наименьшее количество пятерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 39.

Показать ответ и решение

Программа заменяет пятерки, за которыми находится единица на девятки. Если же за пятеркой находится другая пятерка, то левая пятерка заменяется нулем. Свободные единицы не затрагиваются действиями программы. Чтобы минимизировать количество пятерок нужно найти ближайшее к 39 число кратное 9, которое можно дополнить до 39 оставшимися свободными единицами.

Единственное такое число - это 36. Для его получения нужно 4 пятерки, которые будут стоять перед единицами, а также 3 свободных единицы. Таким образом, наименьшее количество пятерок – это 4.

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 17#7522

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*87)

ТО заменить(*87, 4*)

ИНАЧЕ ЕСЛИ нашлось(*8)

ТО заменить(*8, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*7)

ТО заменить(*7, 7*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 6 семерок и неизвестное количество восьмерок. Расположение цифр может быть любым. Определите наименьшее количество восьмерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 42.

Показать ответ и решение

Программа заменяет восьмерки, за которыми находится семерка на четверки. Если же за восьмеркой находится другая восьмерка, то левая восьмерка заменяется нулем. Свободные семерки не затрагиваются действиями программы. Чтобы минимизировать количество восьмерок нужно найти макисмальное количество свободных семерок, сумма которых будет кратна 42.

Сразу же можно определить, что это 6 семерок, значит в строке может не быть восьмерок вовсе, т.е. минимальное количество восьмерок – это 0.

Ответ: 0

Ошибка.
Попробуйте повторить позже

Задача 18#7523

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*78)

ТО заменить(*78, 4*)

ИНАЧЕ ЕСЛИ нашлось(*7)

ТО заменить(*7, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*8)

ТО заменить(*8, 8*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», после него в строке находится 4 восьмерок и неизвестное количество семерок. Расположение цифр может быть любым. Определите наименьшее количество семерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 24.

Показать ответ и решение

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

Чтобы минимизировать количество семерок, определим следующее: в числе 24 содержится 3 восьмерки, однако программа не позволяет взять 3 восьмерки и не использовать остальные.

Очевидно, что восьмерки, перед которыми находится семерка, уменьшаются программой в два раза, значит можно подбором найти такое количество k  и n,  при котором 8 ⋅ k + 4 ⋅ n = 24.  Эти k  и    n  равны 2 и 2 соответственно. Следовательно, чтобы получить число 24, нужно задействовать 2 семерки и поставить их перед восьмерками.

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 19#11769

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в которых v  и w  обозначают последовательности цифр:

   А) заменить (v,w ).

Эта команда заменяет в строке первое слева вхождение последовательности v  на последовательность w.

Например, выполнение команды заменить (333,3)  преобразует строку 1333572  в строку 13572.

Если в строке нет вхождений последовательности v,  то выполнение команды заменить (v,w)  не меняет эту строку.

   Б) Наш лось (v).

Эта команда проверяет, встречается ли последовательность v  в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина»  , в противном случае возвращает значение «ложь»  . Строка исполнителя при этом не изменяется.

Цикл

   П ОК А усл овие

      последовательность команд

   К ОН ЕЦ ПО КА

Выполняется, пока условие истинно.

Какая строка получится в результате применения приведённой ниже программы к строке, содержащей 40  цифр     4  , 40  цифр 8  и 50  цифр 2  , расположенных в произвольном порядке. Запишите без разделителей символы, которые имеют порядковые номера 25,71,105  (отсчет идет с 1  ).

Н АЧА ЛО

   П ОК А нашлось(28) И ЛИ наш лось(84) ИЛИ нашлось(24)

   ЕС ЛИ наш лось(24)

      Т О заменить(24,42)

   И НАЧ Е ЕСЛ И наш лось(84)

      Т О заменить(84,48)

   И НАЧ Е ЕСЛ И наш лось(28)

      Т О заменить(28,82)

   К ОН ЕЦ ЕС ЛИ

   К ОН ЕЦ ПО КА

К ОНЕ Ц

Показать ответ и решение

Решение ручками:

Так как цифры расположены в произвольном порядке, то мы можем поставить их в любом порядке. Пусть наша строка будет иметь вид 4 ...4 8...8 2...2
◟-◝4◜0 ◞ ◟ ◝4◜0 ◞ ◟ ◝5◜0 ◞

Начнем работу нашего алгоритма. Так как в исходной строке мы не находим ни одной из подстрок 28,84,24,  то в цикл мы не заходим, тогда строка не изменится, значит, нужно лишь определить элементы, порядковые номера которых нам даны в условии. Так как порядковые номера начинаются с 1  , а индексы в строке с 0  , то, чтобы верно определить нужные нам индексы, мы вычтем из порядковых номеров 1  . Получим индексы 24,70,104.  Осталось лишь определить, какие это элементы в строке)) Так как первые 40 элементов (индексы от 0 до 39) — это 4  , то первый элемент — 4  . Далее на отрезке [40, 79] расположены 8  , так как 40 ≤ 70 ≥ 79  , то второе число — 8  . Последнее расположено в промежутке 80 ≤ 104 ≥ 129  , а это число 2  .

Найденные цифры запишем в ответ без пробелов, то есть ответ — 482.

Решение прогой:

s = "4" * 40 + "8" * 40 + "2" * 50
while "28" in s or "84" in s or "24" in s:
    if "24" in s:
        s = s.replace("24", "42", 1)
    elif "84" in s:
        s = s.replace("84", "48", 1)
    elif "28" in s:
        s = s.replace("28", "82", 1)
print(s[25 - 1], s[71 - 1], s[105 - 1], sep=’’)

Ответ: 482

Ошибка.
Попробуйте повторить позже

Задача 20#11776

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в которых v  и w  обозначают последовательности цифр:

   А) заменить (v,w ).

Эта команда заменяет в строке первое слева вхождение последовательности v  на последовательность w.

Например, выполнение команды заменить (333,3)  преобразует строку 1333572  в строку 13572.

Если в строке нет вхождений последовательности v,  то выполнение команды заменить (v,w)  не меняет эту строку.

   Б) Нашлось (v).

Эта команда проверяет, встречается ли последовательность v  в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Строка исполнителя при этом не изменяется.

Цикл

   ПОКА условие

      последовательность команд

   КОНЕЦ ПОКА

Выполняется, пока условие истинно.

В конструкции:

   ЕСЛИ условие

      ТО команда1

   КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).

   ЕСЛИ условие

      ТО команда1

      ИНАЧЕ команда2

   КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

Найдите сумму числовых значений цифр в строке, получившейся в результате применения приведённой ниже программы к строке, начинающейся с символа «*», а затем находятся 100 цифр 2, 10 цифр 5, 60 цифр 9, расположенные в произвольном порядке.

НАЧАЛО

   ПОКА нашлось(∗2)  ИЛИ нашлось(∗5)  ИЛИ нашлось(∗9)

      ЕСЛИ нашлось(∗2)

         ТО заменить(∗2,∗)

      КОНЕЦ ЕСЛИ

      ЕСЛИ нашлось(∗5)

         ТО заменить(∗5,6∗)

      КОНЕЦ ЕСЛИ

      ЕСЛИ нашлось(∗9)

         ТО заменить(∗9,7∗)

      КОНЕЦ ЕСЛИ

   КОНЕЦ ПОКА

КОНЕЦ

Показать ответ и решение
s = ’*’ + ’2’ * 100 + ’5’ * 10 + ’9’ * 60
while ’*2’ in s or ’*5’ in s or ’*9’ in s:
    if ’*2’ in s:
        s = s.replace(’*2’, ’*’, 1)
    if ’*5’ in s:
        s = s.replace(’*5’, ’6*’, 1)
    if ’*9’ in s:
        s = s.replace(’*9’, ’7*’, 1)
print(sum((int(x) for x in s if x != ’*’)))

Ответ: 480
Рулетка
Вы можете получить скидку в рулетке!