Какая строка получится в результате применения приведённой ниже
программы к строке, состоящей из 72 идущих подряд цифр 5? В ответе
запишите полученную строку
ПОКА нашлось (333) ИЛИ нашлось (555)
ЕСЛИ нашлось (555)
ТО заменить (555, 3)
ИНАЧЕ заменить (333, 5)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
В моём понимании всё происходит так: 72(5)/3=24(3); 24(3)/3=8(5); 8(5)/3=2,...(3) => 3355, но ответ выглядит так: 5533
Что же я не так делаю? Прошу подробного ответа.
Ответы
Итак. Мы имеем строку из 72 пятерок.
Сначала все пятерки заменяются на тройки (приоритетным действием у нас является замена первого вхождение трех идущих подряд пятерок тройками, а т.к. 72 кратно трем, то преобразованная строка будет состоять только из троек). После этого у нас остается строка, состоящая из 24 троек.
555 555 555 555 ... 555 => 333 333 333 333 333 333 333 333
Затем происходят такие действия: три последовательно идущие тройки заменяются на пятерки, а после того как таких пятерок будет три, они заменятся на одну тройку. Следственно 9 троек заменяются на одну. После проведение данных действий у нас остается 24-9+1-9+1=16-9+1=8 троек.
333 333 333 333 333 333 333 333
555 333 333 333 333 333
333 333 333 333 333 3
555 333 333 3
333 333 33
Так как мы уже не можем получить заменой троек хотя бы три пятерки, то первые вхождения трех подряд идущих троек заменяются пятерками.
333 333 33
5 333 33
5533
Ответ: 5533