#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)