На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 14.02.22 23:55. Заголовок: Задача 12


Добрый день, коллеги!
Я стал решать по методу, который описан выше. Задача примерно одинаковая но разница в количестве единиц, двоек и троек.
Текст Задачи:
Исполнитель Редактор получает на вход строку цифр и преобразует её.
Редактор может выполнять две команды, в обеих командах v и w обозначают
цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на
цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды
заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя
Редактор. Если она встречается, то команда возвращает логическое значение
«истина», в противном случае возвращает значение «ложь». Строка
исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
Дана программа для редактора:
НАЧАЛО
ПОКА НЕ нашлось (00)
заменить (01, 210)
заменить (02, 3101)
заменить (03, 2012)
КОНЕЦ ПОКА
КОНЕЦ

Известно, что исходная строка начиналась с нуля и заканчивалась нулём,
а между ними содержала только единицы, двойки и тройки. После
выполнения данной программы получилась строка, содержащая 61 единицу,
50 двоек и 18 троек. Сколько цифр было в исходной строке?

Проблема в том что переписав немного программу она запускается и не останавливается.
Скажите пожалуйста в чем ошибка. Помогите исправить программу.

 
for ed in range(1,70):
for dv in range(1,70):
for tr in range(1,70):
s = '0'+'1'*ed+'2'*dv+'3'*tr+'0'
print(s)
while not '03' in s:
s = s.replace('01','210',1)
s = s.replace('02','3101',1)
s = s.replace('03','2012',1)
ed_i = s.count('1')
dv_i = s.count('2')
tr_i = s.count('3')
if ed_i == 70 and dv_i == 56 and tr_i == 23:
print('Единиц:', ed)
print('Двоек:', dv)
print('Троек:', tr)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


Администратор




Сообщение: 3316
ссылка на сообщение  Отправлено: 15.02.22 16:41. Заголовок: Dezmond пишет: while..


Dezmond пишет:
 цитата:
while not '03' in s:

В условии по-другому. Вы получили зацикливание while.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 2202
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет