#1-27 номера ЕГЭ по информатике
March 29, 2023
12 Разбор номера 5419 ЕГЭ по информатике от 2023 года #12
Условие Поляков: Тип 12 № 5419
Исходная строка состояла из семидесяти троек. Определите сумму цифр в строке, полученной в результате работы алгоритма.
НАЧАЛО
ПОКА нашлось(333) или нашлось(77777)
ЕСЛИ нашлось(333)
ТО заменить(333,77)
ИНАЧЕ заменить(77777,7)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Комментарии к первому варианту решения задачи:
- создаем нашу строку
- ПОКА нашлась подстрока
“333”или подстрока“77777”циклwhileбудет выполнять действия - если нашлась подстрока
“333” - в таком случае заменим подстроку
“333”на“77”именно 1 раз - иначе
- в таком случае заменим подстроку
“77777”на“7”именно 1 раз - так как нужно сумму цифр в строке, а строка состоит из
“7”и“3”, то мы выводим количество найденных цифр, умноженное на их значение
# Код решения Вариант 1
s = '3' * 70
while '333' in s or '77777' in s:
if '333' in s:
s = s.replace('333', '77', 1)
else:
s = s.replace('77777', '7', 1)
print(s.count('7') * 7 + s.count('3') * 3)
Комментарии ко второму варианту решения задачи:
- создаем функцию, которая будет принимать и обрабатывать нашу строку
- ПОКА нашлась подстрока
“333”или подстрока“77777”циклwhileбудет выполнять действия - если нашлась подстрока
“333” - в таком случае заменим подстроку
“333”на“77”именно 1 раз - иначе
- в таком случае заменим подстроку
“77777”на“7”именно 1 раз - когда цикл заканчивается возвращаем полученную строку
- даем переменной
sполученную строку - так как нужно сумму цифр в строке, а строка состоит из
“7”и“3”, то мы выводим количество найденных цифр, умноженное на их значение
# Код решения Вариант 2
def F(s):
while '333' in s or '77777' in s:
if '333' in s:
s = s.replace('333', '77', 1)
else:
s = s.replace('77777', '7', 1)
return s
s = F('3'* 70)
print(s.count('7') * 7 + s.count('3') * 3)
Комментарии к третьему варианту решения задачи:
1-5. объявляем функцию, которая принимает число и находит сумму всех его цифр
- создаем нашу строку
- ПОКА нашлась подстрока
“333”или подстрока“77777”циклwhileбудет выполнять действия - если нашлась подстрока
“333” - в таком случае заменим подстроку
“333”на“77”именно 1 раз - иначе
- в таком случае заменим подстроку
“77777”на“7”именно 1 раз - передаем переменной
summaзначение суммы цифр полученной строки - и выводим её
# Код решения Вариант 3
def F(s):
summa = 0
for i in range(0, len(s)):
summa += int(s[i])
return summa
s = '3' * 70
while '333' in s or '77777' in s:
if '333' in s:
s = s.replace('333', '77', 1)
else:
s = s.replace('77777', '7', 1)
summa = F(s)
print(summa)