Чтобы решить задачу, давайте разберем программу и поймем, как она работает, а затем определим, как максимизир...
Программа выполняет следующие действия:
- Она ищет числа 37, 577 и 777 в строке.
- Если находит 37, заменяет его на 7.
- Если находит 577, заменяет его на 73.
- Если находит 777, заменяет его на 5.
- Процесс продолжается, пока хотя бы одно из этих чисел находится в строке.
Теперь давайте проанализируем, как замены влияют на сумму числовых значений:
-
:
-
Сумма уменьшается на 30 (37 - 7 = 30).
-
:
-
Сумма уменьшается на 504 (577 - 73 = 504).
-
:
-
Сумма уменьшается на 772 (777 - 5 = 772).
Начальная строка начинается с цифры «3» и содержит n цифр «7». Таким образом, начальная строка выглядит как:
Сумма числовых значений в этой строке:
- Сумма от цифры «3»: 3
- Сумма от n цифр «7»: 7 * n
Итак, начальная сумма:
S = 3 + 7n
Чтобы максимизировать сумму, нам нужно избегать замен, которые уменьшают сумму. Наиболее выгодно оставить как можно больше «7» в строке, так как они дают наибольшую сумму.
- Если мы заменим 37 на 7, это уменьшает сумму.
- Если мы заменим 577 на 73, это также уменьшает сумму.
- Если мы заменим 777 на 5, это значительно уменьшает сумму.
Таким образом, чтобы максимизировать сумму, нам нужно избегать всех замен. Это возможно, если в строке не будет подстрок 37, 577 или 777.
Если строка не содержит этих подстрок, то максимальная сумма будет равна начальной сумме:
S = 3 + 7n
Наибольшее значение суммы числовых значений цифр в строке, которая может быть результатом выполнения программы, равно:
S = 3 + 7n
где n — количество цифр «7» в строке (3 n 10 000).