Автор | Сообщение |
|
Отправлено: 05.05.20 10:52. Заголовок: 14я
Добрый день! Не пойму где ошибаюсь. Вот условие: Дана программа: НАЧАЛО ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03) заменить (01, 103) заменить (02, 10) заменить (03, 210) КОНЕЦ ПОКА КОНЕЦ Известно, что исходная строка начинается с цифры 0, а далее содержит 12 цифр 1, 15 цифр 2 и 17 цифр 3, расположенных в произвольном порядке. Сколько цифр 2 будет в строке, которая получится после выполнения данной программы? Мой код: s = "0"+ 12*'1'+ 15*'2' + 17*'3' while s.find('01')!=-1 or s.find('02')!=-1 or s.find('03')!=-1: s = s.replace('01','103',1) s = s.replace('02','10', 1) s = s.replace('03','210',1) print(s.count("2")) Ответ программы 29. А в ответе 110
|
|
|
Новых ответов нет
[см. все]
|
|
|
Отправлено: 05.05.20 10:58. Заголовок: Если решеть без прог..
Если решать без программы, то каждая "1" дает столько же "2". Например 01 - 103 - 210. Значит 12 единиц дает 12 двоек в конечной строке, Все двойки из исходной строки меняются на 1 и переставляют 0: 02 - 10, Каждая тройка дает одну двойку и единицу. Было 17 троек стало 17 двоек и 17 единиц Итог 12+17 = 29 Как в программе
|
|
|
|
Отправлено: 05.05.20 11:04. Заголовок: Если прокрутить в ру..
Если прокрутить в ручную на маленькой строке (для понимания алгоритма): 0112233 10312233 121012233 1211032233 12112102233 12112110233 12112111033 1211211121210 Итог четыре 2йки. Две вместо двух "1" и две вместо двух "3" подтверждает выше сказанное
|
|
|
|
| Администратор
|
Сообщение: 2059
|
|
Отправлено: 05.05.20 11:17. Заголовок: nikson пишет: А в от..
nikson пишет: Почему есть уверенность, что ответ правильный?
|
|
|
|
Отправлено: 05.05.20 11:25. Заголовок: Поляков пишет: Поче..
Поляков пишет: цитата: | Почему есть уверенность, что ответ правильный? |
| А слона, то я и не заметил. Пол дня ломал голову - не в ту графу посмотрел!!!! Ответ 29 :((
|
|
|
|
Отправлено: 04.10.23 19:59. Заголовок: Правильный ответ 29
s = "0"+ 12*'1'+ 15*'2' + 17*'3' while '01' in s or '02' in s or '03' in s: s = s.replace('01','103',1) s = s.replace('02','10', 1) s = s.replace('03','210',1) print(s.count("2"))
|
|
|
|