Форум » Выполнение и анализ алгоритмов для исполнителей » задание 12 № 288 » Ответить

задание 12 № 288

SSV: У меня почему-то получилось 8 [pre2] a=set() for i in range(1,3150): s = i*'8' while "555" in s or "888" in s: if "555" in s: s = s.replace( "555", "8", 1 ) else: s = s.replace( "888", "55", 1 ) a.add(s) print(s) print(a) print(len(a)) [/pre2] {'8', '858', '8588', '5588', '85', '558', '55', '88'} 8

Ответов - 3

SSV: Тоже нашла ответ, но он не убедил.

SSV: Посмотрела новую редакцию, теперь все корректно.

Nox: 288. ПОКА нашлось (555) ИЛИ нашлось (888) заменить (555, 8) заменить (888, 55) КОНЕЦ ПОКА Известно, что начальная строка состоит только из цифр 8. Сколько различных строк может получиться в результате работы алгоритма? Если пробегать в данном диапазоне: for i in range(1,3150): то алгоритм ни разу не сработает при i=1 и i=2. Отсюда лишнее значение. Начинать нужно с i=3. Я сделал такую же ошибку первый раз. В новой формулировке уже написано не менее 2 цифр 8. В принципе было достаточно старой формулировки)




полная версия страницы