@angor20

Правильно ли я решил?

Исполнитель Редактор получает на вход строку цифр и преобразовывает еѐ.
Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w). Эта команда заменяет в строке первое вхождение цепочки v на цепочку
w.
Б) нашлось (v). Эта команда проверяет вхождение цепочки v в строке.
Ниже приведена программа для исполнителя Редактор.
ПОКА нашлось (19) ИЛИ нашлось (299) ИЛИ нашлось (3999)
заменить (19, 2)
заменить (299, 3)
заменить (3999, 19)
КОНЕЦ ПОКА
На вход этой программе подаѐтся строка, состоящая из цифры 1, за которой следуют 100 идущих
подряд цифр 9. Какая строка получится в результате применения программы к этой строке? В
ответе запишите полученную строку.

Мое решение :
1999(100 цифр) 9
Первый шаг цикла:
19 -> 2
29999(99 цифр) 9
Или 299 999(97 цифр) 9
299 -> 3
3999(97 цифр) 9
Или 3999 999(94 цифры)
3999 -> 19
19 999(94 цифры)
Или
1999(95 цифр)

То есть за 1 проход цикла у нас уходит 5 девяток.

Поэтому нужно отдельно глянуть на ситуацию, когда их останется 5.
199999
19 -> 2
29999
299 -> 3
399
И вот тут оно слетит. Последняя замена не будет выполнена, и цикл закончится.

Ответ: 399
  • Вопрос задан
  • 893 просмотра
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Если алгоритм в коде даёт верный результат на разных входных данных, скорее всего, он - верный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы