#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Задачка 12 номера с сайте Решу ЕГЭ. Интересна она благодаря условию: "После выполнения программы получилась строка, содержащая только двойки".
for n in range(201, 1000):
s = '1' * n
while '111' in s or '222' in s:
s = s.replace('111', '22', 1)
s = s.replace('222', '1', 1)
if len(s) == s.count('2'):
print(n)
break
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Сложный
Дана программа для исполнителя Редактор:
ПОКА нашлось(21)
заменить (21, 6)
Исходная строка содержит десять единиц и некоторое количество двоек, других цифр нет, точный порядок расположения единиц и двоек неизвестен. После выполнения программы получилась строка с суммой цифр 50. Какое наименьшее количество двоек могло быть в исходной строке?
Опишу в следующем посте*
from itertools import *
for n in range(1, 10):
for s in product('12', repeat=10+n):
if s.count('1') == 10:
s = ''.join(s)
while '21' in s:
s = s.replace('21', '6', 1)
if sum(map(int, s)) == 50:
print(n)
exit()
# Ответ: 8
from itertools import *
Импорт всех функций из модуля itertools.
for n in range(1, 10):
Цикл for, который проходит по значениям n от 1 до 9 включительно.
for s in product('12', repeat=10+n):
Вложенный цикл for, который поочередно формирует кортежи из повторений символов '1' и '2', накопленных 10+n раз, и сохраняет их в переменную s.
if s.count('1') == 10:
Проверка условия: если символ '1' встречается в строке s 10 раз.
s = ''.join(s)
Преобразование кортежа в строку s.
while '21' in s:
Цикл while, который будет продолжаться до тех пор, пока в строке s присутствует подстрока '21'.
s = s.replace('21', '6', 1)
Замена первого вхождения подстроки '21' на символ '6' в строке s.
if sum(map(int, s)) == 50:
Проверка условия: если сумма цифр в строке s, преобразованных в целые числа, равна 50.
print(n)
Вывод значения переменной n.
exit()
Завершение выполнения программы.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
s = 170 * '1' + 100 * '3' + 7 * '2'
while '11' in s:
s = s.replace('112', '4', 1)
s = s.replace('113', '2', 1)
s = s.replace('42', '3', 1)
s = s.replace('43', '1', 1)
print(s)
s = 170 * '1' + 100 * '3' + 7 * '2'
Пример создания строка s, состоящая из 170 символов '1', за которыми следует 100 символов '3', а затем 7 символов '2'.
while '11' in s:
Начинается цикл, который будет выполняться до тех пор, пока в строке s есть подстрока '11'.
if '11' in s:
Если в строке s есть подстрока '11', то:
s = s.replace('112', '4', 1)
Заменяется первое вхождение подстроки '112' на символ '4' в строке s.
summa = sum([int(i) for i in s])
Создается переменная summa, с суммой цифр строки.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 07.06.2024
Уровень: Базовый
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 100 идущих подряд
цифр 9?
ПОКА нашлось (33333) ИЛИ нашлось (999)
ЕСЛИ нашлось (33333)
ТО заменить (33333, 99)
ИНАЧЕ заменить (999, 3)
Задачи 12 номера можно назвать типовыми (не редкий случай для нашего экзамена), запомнить нужно только несколько основных вещей: 1) строка умноженная на число будет дублироваться 2) всегда пересоздаем строку s = s.replace() иначе строка не изменится 3) в методе .replace('a', 'b', 1) всегда ставим единичку - так как замены производятся последовательно.
s = '9' * 100
while '33333' in s or '999' in s:
if '33333' in s:
s = s.replace('33333', '99', 1)
else:
s = s.replace('999', '3', 1)
print(s)
# Ответ: 333
s = '9' * 100
Инициализируем строку s, состоящую из 100 символов '9'.
while '33333' in s or '999' in s:
Запускаем цикл, который будет продолжаться до тех пор, пока в строке s присутствует подстрока '33333' или '999'.
if '33333' in s:
Проверяем, присутствует ли в строке подстрока '33333'.
s = s.replace('33333', '99', 1)
Если '33333' присутствует, заменяем её на '99' (первая замена слева направо).
else:
Если подстроки '33333' нет в строке, выполняется следующий блок кода.
s = s.replace('999', '3', 1)
Если '999' присутствует, заменяем её на '3' (первая замена слева направо).
print(s)
Выводим итоговое значение строки s после завершения всех замен, когда условия больше не выполняются.
Информатика ЕГЭ | itpy
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
2 6 5 4
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Демоверсия 2025
Уровень: Базовый
Какая строка получится в результате применения приведённой ниже программы к строке,
состоящей из 81 идущей подряд цифре 1? В ответе запишите полученную строку.
ПОКА нашлось (11111) ИЛИ нашлось (888)
ЕСЛИ нашлось (11111)
ТО заменить (11111, 88)
ИНАЧЕ заменить (888, 8)
Предлагаю вам альтернативное решение базового 12 номера с использованием библиотеки re. Базовое решение оставлю в комментариях к этому посту!
from re import *
s = '1' * 81
while '11111' in s or '888' in s:
s = sub('11111', '8', s, 1)
s = sub('888', '8', s, 1)
print(s)
# Ответ: 881
from re import *
Импортируем все функции и классы из модуля re, который предоставляет функциональность для работы с регулярными выражениями.
s = '1' * 81
Создаем строку s, состоящую из 81 символа '1'.
while '11111' in s or '888' in s:
Начинаем цикл, который продолжается до тех пор, пока строка s содержит подстроку '11111' или '888'.
s = sub('11111', '8', s, 1)
Заменяем первое вхождение подстроки '11111' на '8' в строке s.
s = sub('888', '8', s, 1)
Заменяем первое вхождение подстроки '888' на '8' в строке s.
print(s)
Выводим результирующую строку s после завершения цикла.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 5 5 2
Для закрепления материала оставляю ссылку на подборку всех 12 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
Автор: Апробация 05.03.25
Уровень: Базовый
s = '1' + 90 * '0'
while '1' in s:
if '10' in s:
s = s.replace('10', '0001', 1)
else:
s = s.replace('1', '000', 1)
print(s.count('0'))
В данном задании необходимо найти количество нулей в полученной строке.
Уровень: Базовый
M = []
for n in range(4, 10000):
s = '4' + n * '7'
while '444' in s or '777' in s:
if '777' in s:
s = s.replace('777', '4', 1)
else:
s = s.replace('444', '7', 1)
summ = s.count('4') * 4 + s.count('7') * 7
M.append(summ)
print(max(M))
В этом прототипе нужно найти максимальную сумму цифр в строке.
s = '12345'
summ = s.count('4') * 4 + s.count('7') * 7
summ = sum(map(int, s))
summ = sum([int(x) for x in s])
summ = sum([int(x) for x in s if x.isdigit()])
summ = 0
for x in s:
summ += int(x)
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤🔥10👍4 4🔥2 1
Дана программа для Редактора:
ПОКА нашлось (577) ИЛИ нашлось (677) ИЛИ нашлось (657)
ЕСЛИ нашлось (577)
ТО заменить (577,76)
ЕСЛИ нашлось (677)
ТО заменить (677,75)
ЕСЛИ нашлось (657)
ТО заменить (657, 56)
На вход приведённой выше программе поступает строка, начинающаяся с цифры «5», а затем содержащая п цифр «7» (3 < n < 10000). Определите наибольшее значение п, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 76.
for n in range(4, 10000):
s = '5' + n * '7'
while '577' in s or '677' in s or '657' in s:
if '577' in s:
s = s.replace('577', '76', 1)
if '677' in s:
s = s.replace('677', '75', 1)
if '657' in s:
s = s.replace('657', '56', 1)
summ = sum([int(i) for i in s])
if summ == 76:
print(n)
# Ответ: 19
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6❤🔥4🔥4👍2