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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 21.11.23 13:36. Заголовок: 5993 ЕГЭ 12


Добрый день! Помогите, пожалуйста разобраться. ЕГЭ 12 №321
На вход приведённой выше программе поступает строка, начинающаяся с символов «>2», затем n пар цифр «12» и в конце символ «<». Определите наименьшее значение n, при котором сумма цифр строки, получившейся в результате выполнения программы, будет больше, чем 103.
«for n in range(1,50):
s='>2'+'12'* n+'<'
while '>2<' not in s:
s=s.replace('>1','>2',1)
s=s.replace('12<','1<2',1)
s=s.replace('>21','1>',1)
s=s.replace('1<','<2',1)
s=s.replace('>','',1)
s=s.replace('<','',1)
if sum(int(x) for x in s)>103: print(n)»
Программа зацикливается при n=1/ Прокрутила вручную- так же, работает только с четными числами. Как объяснить детям, что нужны только честные числа?
Поставил шаг и ответ правильный

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







Сообщение: 181
ссылка на сообщение  Отправлено: 05.12.23 20:37. Заголовок: Можно отследить, про..


Можно отследить, происходит ли изменение строки, если нет, до выходить из цикла по причине зависания...
 
for n in range(1,100):
s='>2'+'12'* n+'<'
s1=''
while s1!=s and '>2<' not in s:
s1=s
s=s.replace('>1','>2',1)
s=s.replace('12<','1<2',1)
s=s.replace('>21','1>',1)
s=s.replace('1<','<2',1)
s=s.replace('>','',1)
s=s.replace('<','',1)
if sum(int(x) for x in s)>103:
print(n)
break


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

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